Java IO & Serialization

专为开卷考试准备,内容包括基本的文本文件和二进制文件的读写以及序列化反序列化操作

IO demo

package helloworld;import java.io.BufferedReader;
import java.io.BufferedWriter;
import java.io.DataInputStream;
import java.io.DataOutputStream;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.FileReader;
import java.io.FileWriter;
import java.io.IOException;public class TestIO {public static void main(String[] args) {String fileName = "test.txt";try {FileWriter fWriter = new FileWriter(fileName);fWriter.write("你好\n");fWriter.write("Hello World");fWriter.close();// 带缓冲的写法,写入大量内容的时候可以更加高效一些BufferedWriter fWriter2 = new BufferedWriter(new FileWriter("test2.txt")); // 装饰器模式fWriter2.write("加入buffer\n");fWriter2.write("Hi World");fWriter2.close();// 读取文件BufferedReader fReader = new BufferedReader (new FileReader(fileName));StringBuffer content = new StringBuffer();String line;while ((line = fReader.readLine())!=null) {content.append(line);}System.out.println(content);// 你好\nHello WorldfReader.close();} catch (IOException e) {e.printStackTrace();}// 二进制文件try {// 打开流DataOutputStream dataOutputStream = new DataOutputStream(new FileOutputStream("test.bin"));dataOutputStream.writeInt(123);dataOutputStream.writeUTF("方浩 the great");dataOutputStream.writeDouble(1234.56);dataOutputStream.close(); // 关闭流// 读取二进制文件DataInputStream dataInputStream = new DataInputStream(new FileInputStream("test.bin"));System.out.println(dataInputStream.readInt());System.out.println(dataInputStream.readUTF());System.out.println(dataInputStream.readDouble());dataInputStream.close();} catch (FileNotFoundException e) {e.printStackTrace();} catch (IOException e) {e.printStackTrace();}}
}

Serialization demo

package helloworld;import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.ObjectInputStream;
import java.io.ObjectOutputStream;
import java.io.Serializable;// 要序列化的的对象需要实现序列化接口
class Employee implements Serializable {/*** */private static final long serialVersionUID = 1L;String name;String address;void mailCheck() {System.out.println("Mailing a check to " + name + " " + address);}}public class TestSerialization {public static void main(String[] args) {Employee employee = new Employee();employee.name = "Tim";employee.address = "Phokka Kuan, Ambehta Peer";// 序列化try {ObjectOutputStream out = new ObjectOutputStream(new FileOutputStream("test.ser"));// 把对象存入文件out.writeObject(employee);out.close();} catch (FileNotFoundException e) {// TODO Auto-generated catch blocke.printStackTrace();} catch (IOException e) {// TODO Auto-generated catch blocke.printStackTrace();}// 反序列化try {ObjectInputStream in = new ObjectInputStream(new FileInputStream("test.ser"));Employee e = (Employee)in.readObject();in.close();e.mailCheck();} catch (IOException e) {// TODO Auto-generated catch blocke.printStackTrace();} catch (ClassNotFoundException e) {// TODO Auto-generated catch blocke.printStackTrace();}}
}

转载于:https://www.cnblogs.com/fanghao/p/10883720.html

Java IO Serialization相关推荐

  1. 一。深入了解JDK1.8 从Package java.io开始

    Package java.io 通过数据流,序列化和文件系统提供系统输入和输出. See: 描述 接口摘要 接口 描述 Closeable A Closeable是可以关闭的数据的源或目的地. Dat ...

  2. java的Serialization 机制

    基本使用方法                Serialization是指把类或者基本的数据类型持久化(persistence)到数据流(Stream)中,包括文件.字节流.网络数据流.        ...

  3. Java序列化(Serialization)的理解

    2019独角兽企业重金招聘Python工程师标准>>> 1.什么是序列化 Java是面向对象的编程语言,有时需要保存对象,并在下次使用时可以顺利还原该对象.由于这种需求很常见,所以J ...

  4. Java IO: 序列化与ObjectInputStream、ObjectOutputStream

    转载自  Java IO: 序列化与ObjectInputStream.ObjectOutputStream 作者:Jakob Jenkov  译者: 李璟(jlee381344197@gmail.c ...

  5. Java IO 系统

    Java IO系统 File类 用来处理文件目录,既可以代表一个特定文件的名称,也可以代表一组文件的名称,如果代表的是一个文件组,可以调用File.list()方法返回一个字符数组. list()不传 ...

  6. java序列化错在哪里_Spark序列化错误:java.io.NotSerializableException

    由于spark算子用到的class没有实现序列化,报错如下所示 15/11/23 14:43:47 ERROR Executor: Exception in task 0.0 in stage 4.0 ...

  7. JAVA IO系列----ObjectInputStream和ObjectOutputStream类

    ·ObjectInputStream和ObjectOutputStream这两个包装类,用于从底层输入流中读取对象类型的数据和对象类型的数据写入到底层输出流.将对象中所有成员变量的取值保存起来就等于保 ...

  8. java io教程_Java IO教程

    java io教程 Java provides several classes in java.io package to work with text, stream data, and file ...

  9. java.io.NotSerializableException: org.apache.kafka.clients.consumer.ConsumerRecord

    java消费kafka数据时报错 ERROR [Executor task launch worker for task 90] - Exception in task 0.0 in stage 54 ...

最新文章

  1. python学习笔记 day44 数据库三范式
  2. python 自动记录时间_python自动化之时间
  3. 织梦正则批量替换文章内容内链变成绝对路径
  4. Python教程:一篇文件教你py文件打包成exe
  5. SAP 几款容易令初学者混淆的 HANA 解决方案
  6. 物体成瘾性_科技成瘾使我们不那么快乐。 那是一个市场机会。
  7. fmdb和mysql的区别_FMDB
  8. 前端学习(2019)vue之电商管理系统电商系统处理attr参数
  9. 重新学.Net[一]——.Net的组成
  10. java暂停另一个线程_如何从另一个线程终止或暂停Rust线程?
  11. nignx处理Html中SSI技术代码注意事项
  12. 一个列表包揽所有你需要的Windows应用
  13. ros中move_group的参数动态设置
  14. css中的滤镜,CSS中的filter(滤镜)属性
  15. Ingenuous Cubrency UVA - 11137(完全背包)
  16. elasticsearch7.x Java High Level REST客户端封装工具
  17. ttk python_python GUI ttk库 -- Apple的学习笔记
  18. 电脑、Windows系统下方搜索栏搜不出文件怎么办?如何解决?实测有效
  19. 2020-10-27漫谈JWT(转载)
  20. 代币标准--ERC721协议源码解析

热门文章

  1. openfoam211版本安装
  2. linux更改python版本链接
  3. vscode could not establish connection to linux The VS Code Server failed to start
  4. 启动标志_牛股启动的标志:天衣无缝。
  5. ZAB协议选主过程详解
  6. 使用钉钉接收gitlab仓库的推送消息
  7. python 之 click 包,设置命令行参数
  8. 猜想:汇编指令push和pop对sp的处理顺序缘由
  9. 设计模式——装饰器模式
  10. hbuilder版本更新失败_初试vue-cli使用HBuilderx打包app的坑