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

相关推荐
khddvbe5 分钟前
C++并发编程中的死锁避免
开发语言·c++·算法
daidaidaiyu25 分钟前
Spring IOC 源码学习 声明式事务的入口点
java·spring
myloveasuka39 分钟前
[Java]查找算法&排序算法
java·算法·排序算法
清水白石0081 小时前
Free-Threaded Python 实战指南:机遇、风险与 PoC 验证方案
java·python·算法
wWYy.1 小时前
STL:list
开发语言·c++
TON_G-T1 小时前
day.js和 Moment.js
开发语言·javascript·ecmascript
发际线还在1 小时前
互联网大厂Java三轮面试全流程实战问答与解析
java·数据库·分布式·面试·并发·系统设计·大厂
飞Link1 小时前
具身智能核心架构之 Python 行为树 (py_trees) 深度剖析与实战
开发语言·人工智能·python·架构
_周游1 小时前
Kaptcha—Google验证码工具
java·intellij-idea·jquery
我真会写代码2 小时前
深入理解JVM GC:触发机制、OOM关联及核心垃圾回收算法
java·jvm·架构