使用IO流写出以下题目题目一统计一个文件夹中每种文件的个数并打印。打印格式如下:txt3个doc4个jpg6个…题目二在你计算机的一个盘比如D盘根目录下创建一个文件名字叫做file01txt。保存以下内容要求是单字节字符比如字母或者数字file01txt1 abcdef123456要求:1 使用字节输入流一次读取一个字节的方法将file01txt的文件读取并打印2 使用字节输入流一次读取多个字节的
题目一:
import java.io.File;
import java.io.FilenameFilter;
public class FileCount {
public static void main(String[] args) {
File folder = new File("path/to/folder"); // 替换为实际文件夹路径
if (!folder.isDirectory()) {
System.out.println("不是一个文件夹!");
return;
}
File[] files = folder.listFiles(new FilenameFilter() {
@Override
public boolean accept(File dir, String name) {
return new File(dir, name).isFile();
}
});
if (files == null || files.length == 0) {
System.out.println("文件夹为空!");
return;
}
int[] counts = new int[files.length];
String[] extensions = new String[files.length];
for (int i = 0; i < files.length; i++) {
String extension = getExtension(files[i].getName());
extensions[i] = extension;
counts[i] = 1;
for (int j = i + 1; j < files.length; j++) {
if (extensions[j].equals(extension)) {
counts[i]++;
counts[j] = -1;
}
}
}
for (int i = 0; i < extensions.length; i++) {
if (counts[i] > 0) {
System.out.println(extensions[i] + ": " + counts[i] + "个");
}
}
}
private static String getExtension(String filename) {
int dotIndex = filename.lastIndexOf('.');
if (dotIndex < 0) {
return "";
}
return filename.substring(dotIndex + 1);
}
}
题目二:
import java.io.FileInputStream;
import java.io.IOException;
public class ReadFile {
public static void main(String[] args) {
try (FileInputStream fis = new FileInputStream("path/to/file01.txt")) {
// 一次读取一个字节
int b;
while ((b = fis.read()) != -1) {
System.out.print((char) b);
}
System.out.println();
// 一次读取多个字节
byte[] buffer = new byte[1024];
int len;
while ((len = fis.read(buffer)) != -1) {
System.out.print(new String(buffer, 0, len));
}
} catch (IOException e) {
e.printStackTrace();
}
}
}
题目三:
import java.io.File;
import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.IOException;
public class CopyImage {
public static void main(String[] args) {
File srcFolder = new File("D:/img1"); // 替换为实际文件夹路径
File destFolder = new File("D:/img2"); // 替换为实际文件夹路径
if (!srcFolder.isDirectory() || !destFolder.isDirectory()) {
System.out.println("不是一个文件夹!");
return;
}
File[] files = srcFolder.listFiles();
if (files == null || files.length == 0) {
System.out.println("文件夹为空!");
return;
}
for (File file : files) {
if (file.isFile()) {
try (FileInputStream fis = new FileInputStream(file);
FileOutputStream fos = new FileOutputStream(new File(destFolder, file.getName()))) {
byte[] buffer = new byte[1024];
int len;
while ((len = fis.read(buffer)) != -1) {
fos.write(buffer, 0, len);
}
} catch (IOException e) {
e.printStackTrace();
}
}
}
}
}
题目四:
字符流相关方法包括:
- FileReader / FileWriter:用于读写字符文件,支持指定字符集。
- BufferedReader / BufferedWriter:用于读写字符文件,提供缓冲功能,可以一次读写一行。
- InputStreamReader / OutputStreamWriter:用于将字节流转换为字符流,支持指定字符集。
- PrintWriter:用于打印格式化的输出。
- CharArrayReader / CharArrayWriter:用于在内存中读写字符数据。
- StringReader / StringWriter:用于在内存中读写字符串数据
原文地址: https://www.cveoy.top/t/topic/frNA 著作权归作者所有。请勿转载和采集!