本次 Lab 时长为 2 周,DDL 为 11 月 27 日 23:59。
附件下载(包括问答题和实验报告模板):https://bhpan.buaa.edu.cn/link/AA96D0CA694BB74ABFA070F38B6C527AC6
理解并掌握控制台读入数据、标准输入输出、Scanner
类(基础的输入输出)
理解并掌握 Java
文件管理(File
类)、输入/输出流类及其派生类的使用(字节流的顺序读写)
理解并掌握读写器及其派生类的使用(字符流的顺序读写)
理解并掌握对象序列化(对象流的读写)
如果准备按字节读取一个文件的内容,应当使用 FileInputStream
流还是 FileReader
流,为什么?
1 | import java.io.File; |
Part Ⅰ
和 Part Ⅱ
的输出为什么不同。设计一个方法,用于移除文件中的注释。
1 | public static void removeComments(String inputPath, String outPath) throws IOException; |
input.txt
1 | File f = new File("./java.oop"); |
out.txt
在删除注释后, 你可以自由选择是否删除空行。
一种可能的输出如下。
1 | File f = new File("./java.oop"); |
设计一个方法,使用 Java 的输入、输出流将一个文本文件的内容按行读出,每读出一行就顺序添加行号,并写入到另一个文件中。
1 | public static void addLineNo(String inputPath,String outPath) throws IOException; |
复制文件是常见的 IO 操作,设计如下方法,实现复制源文件 sourceFile
到目标文件 targetFile
的功能。
1 | public static void copyFile (String sourceFile, String targetFile) throws IOException; |
设计一个方法,复制一个文件夹下面所有文件和后代文件夹内容到另一文件夹,即递归复制。
1 | public static void copyDirectory(String sourceDir, String targetDir) throws IOException; |
Hint:可以尝试复用 Q5 的代码。