2.1 验证性实验
1、使用字节流完成文件读写与复制。调试下面的程序,分析程序的功能和运行结果并添加代码注释。
|-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|
| public class Test3 { public static void main(String[] args) throws IOException { // 利用 IO流实现文件的 拷贝:file/a.txt ---》 file/a_copy.txt // 1. 创建文件字节输入输出流对象 FileInputStream fis = new FileInputStream("file/ab.jpg"); FileOutputStream fos = new FileOutputStream("file/ab_copy.jpg"); // 2. 读写操作 while(true){ int n = fis.read(); if(n==-1) break;; fos.write(n); } // 3. 关闭流 fis.close(); fos.close(); } } |
2、实现学生对象的序列化与反序列化。调试下面的程序,并分析程序的功能和运行结果并添加代码注释。
|---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|
| import java.io.Serializable; public class Student implements Serializable { private String name; private transient Integer age; private Double score; public Student() { } public Student(String name, Integer age, Double score) { this.name = name; this.age = age; this.score = score; } public String getName() { return name; } public void setName(String name) { this.name = name; } public Integer getAge() { return age; } public void setAge(Integer age) { this.age = age; } public Double getScore() { return score; } public void setScore(Double score) { this.score = score; } @Override public String toString() { return "Student{" + "name='" + name + '\'' + ", age=" + age + ", score=" + score + '}'; } } public class Test4 { public static void main(String[] args) throws IOException, ClassNotFoundException { // 利用IO流将 对象存储在文件中 Student s = new Student("李锦川",19,99.0); // 1. 创建文件字节输出流对象 --》基础流 FileOutputStream fos = new FileOutputStream("file/stu.txt"); // 2. 包装过滤流 ObjectOutputStream oos = new ObjectOutputStream(fos); // 3. 写操作 -》写对象 oos.writeObject(s); // 4. 关闭流 (关闭最外层) oos.close(); // 利用IO流进行读取对象 FileInputStream fis = new FileInputStream("file/stu.txt"); ObjectInputStream ois = new ObjectInputStream(fis); Object obj=ois.readObject(); System.out.println(obj); ois.close(); } } |
2.2 自主设计性实验
3、利用IO流,完成以下程序:
将26个大写字母(A~Z)写入到当前项目a.txt文件中;
读取文件中的内容,将读取的内容连接为一个字符串,并将所有的大写字母转变为小写字母打印输出转换的结果。
4、在当前project中创建 file文件夹,并准备好一个文件myfile.txt,文件中内容为 lovejava ,利用IO流进行文件读取,将读取的内容以字符形式存储在 List集合中,并将读取的内容倒序 写入到 file文件夹下的newfile.txt文件中。