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

相关推荐
80530单词突击赢8 分钟前
JavaWeb进阶:SpringBoot核心与Bean管理
java·spring boot·后端
3GPP仿真实验室23 分钟前
【Matlab源码】6G候选波形:OFDM-IM 增强仿真平台 DM、CI
开发语言·matlab·ci/cd
devmoon26 分钟前
在 Polkadot 上部署独立区块链Paseo 测试网实战部署指南
开发语言·安全·区块链·polkadot·erc-20·测试网·独立链
lili-felicity26 分钟前
CANN流水线并行推理与资源调度优化
开发语言·人工智能
爬山算法27 分钟前
Hibernate(87)如何在安全测试中使用Hibernate?
java·后端·hibernate
沐知全栈开发27 分钟前
CSS3 边框:全面解析与实战技巧
开发语言
island131437 分钟前
CANN GE(图引擎)深度解析:计算图优化管线、内存静态规划与异构 Stream 调度机制
c语言·开发语言·神经网络
云姜.40 分钟前
线程和进程的关系
java·linux·jvm
是码龙不是码农41 分钟前
支付防重复下单|5 种幂等性设计方案(从初级到架构级)
java·架构·幂等性
曹牧42 分钟前
Spring Boot:如何在Java Controller中处理POST请求?
java·开发语言