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

相关推荐
BBmmo1 分钟前
我的 Java 学习笔记 · 第 11 篇:Condition.await 为什么必须放在 while 里
java
SimonKing4 分钟前
一只离线鼠鼠,干翻了一堆在线格式转换网站
java·后端·程序员
程序员-Benothing5 分钟前
Linux文本排序统计命令:sort、uniq、wc、cut、tr实战
java·开发语言·算法
clz13145216 分钟前
双重检查锁 DCL 终极优化:懒加载 + 线程安全 + 高性能
java
CRMEB6 分钟前
前后端技术栈全面换代!CRMEB 多商户(Java)v3.0更新预告
java·开发语言
开发者联盟league7 分钟前
c++11 使用chrono库转换时间点和字符串,计算时间点间隔
java·c++·算法
我最爱吃鱼香茄子11 分钟前
【毕业设计优选】人力资源管理系统|Java|SpringBoot|Vue|前后端分离|带详细文档+部署教学视频
java·vue·毕业设计·springboot
JQLvopkk15 分钟前
HslCommunication,一个工具测遍所有 PLC
开发语言·人工智能·c#·交互
阿狗童鞋23 分钟前
Python爬虫进阶实战指南
开发语言·爬虫·python
下页、再停留29 分钟前
【C#桌面客户端系列学习-7】数据查询展示
开发语言·c#·visual studio