题目一:

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:用于在内存中读写字符串数据
使用IO流写出以下题目题目一统计一个文件夹中每种文件的个数并打印。打印格式如下:txt3个doc4个jpg6个…题目二在你计算机的一个盘比如D盘根目录下创建一个文件名字叫做file01txt。保存以下内容要求是单字节字符比如字母或者数字file01txt1 abcdef123456要求:1 使用字节输入流一次读取一个字节的方法将file01txt的文件读取并打印2 使用字节输入流一次读取多个字节的

原文地址: https://www.cveoy.top/t/topic/frNA 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录