基于 IO 流实现文件操作的专项实验

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文件中。

相关推荐
superman超哥2 小时前
仓颉锁竞争优化深度解析
c语言·开发语言·c++·python·仓颉
一晌小贪欢2 小时前
【Python办公自动化】Python办公自动化常用库新手指南
开发语言·python·python自动化办公·python3·python办公自动化·python办公
姓蔡小朋友2 小时前
MySQL事务、InnoDB存储引擎
java·数据库·mysql
业精于勤的牙2 小时前
最长特殊序列(二)
java·开发语言·算法
yong99902 小时前
C#实现OPC客户端与S7-1200 PLC的通信
开发语言·网络·算法·c#
林shir2 小时前
Java基础1.3-Java基础语法
java
charlie1145141913 小时前
快速在WSL上开发一般的C++上位机程序
开发语言·c++·笔记·学习·环境配置·工程
仲夏月二十八3 小时前
关于golang中何时使用值对象和指针对象的描述
开发语言·后端·golang
我命由我123453 小时前
CSS 锚点定位 - 锚点定位引入(anchor-name、position-anchor)
开发语言·前端·javascript·css·学习·html·学习方法