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 World
fReader.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 block
e.printStackTrace();
} catch (IOException e) {
// TODO Auto-generated catch block
e.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 block
e.printStackTrace();
} catch (ClassNotFoundException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
}

Java IO & Serialization的更多相关文章

  1. Java基础(二十九)Java IO(6)对象序列化(Object Serialization)

    参考之前整理过的Java序列化与反序列化:https://www.cnblogs.com/BigJunOba/p/9127414.html 使用对象输入输出流可以实现对象序列化与反序列化,可以直接存取 ...

  2. java.io.Serializable 序列化接口

    什么是序列化.反序列化? Serialization(序列化)是一种将对象以一连串的字节描述的过程: 反序列化deserialization是一种将这些字节重建成一个对象的过程. 序列化通俗一点说就是 ...

  3. Netty学习二:Java IO与序列化

    1 Java IO 1.1 Java IO 1.1.1 IO IO,即输入(Input)输出(Output)的简写,是描述计算机软硬件对二进制数据的传输.读写等操作的统称. 按照软硬件可分为: 磁盘I ...

  4. java的Serialization 机制

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

  5. java.io.StreamCorruptedException: invalid stream header: EFBFBDEF 问题解决

    错误方式 @Test public void testDeserializeTest() throws IOException, ClassNotFoundException { ByteArrayO ...

  6. 基于Java IO 序列化方案的memcached-session-manager多memcached节点配置

    在公司项目里想要在前端通过nginx将请求负载均衡,而后台的几组tomcat的session通过memcached(non-sticky模式)进行统一管理,这几组tomcat部署的web app是同一 ...

  7. Java-API-Package:java.io

    ylbtech-Java-API-Package:java.io 1.返回顶部 1. Package java.io Provides for system input and output thro ...

  8. Java-API:java.io百科

    ylbtech-Java-API:java.io百科 Java的核心库java.io提供了全面的IO接口.包括:文件读写.标准设备输出等.Java中IO是以流为基础进行输入输出的,所有数据被串行化写入 ...

  9. java.io.InvalidClassException 异常解决, 实现Serializable接口的注意事项

    解决方案: 在类中显式指定 private static final long serialVersionUID = 42L; 类实现序列化接口, 进行序列化反序列化的时候, 抛出 java.io.I ...

随机推荐

  1. web项目部署在centos 7验证码显示不出来解决方案

    今天把项目部署在centos7上,发现验证码显示不出来,看了一下tomcat日志 Exception in thread "http-nio-8080-exec-3" java.l ...

  2. python将list元素转为数字

    mask_x = ['11', '12', 13'] 方法1:for循环遍历 mask_x = [int(x) for x in mask_x] 方法2:map迭代 mask_x = list(map ...

  3. SQL 语句外键 a foreign key constraint fails

    queryRunner.update("SET FOREIGN_KEY_CHECKS = 0;"); queryRunner.update(sql, pid); queryRunn ...

  4. 数据总线&地址总线&控制总线

    数据总线 (1) 是CPU与内存或其他器件之间的数据传送的通道. (2)数据总线的宽度决定了CPU和外界的数据传送速度. (3)每条传输线一次只能传输1位二进制数据.eg: 8根数据线一次可传送一个8 ...

  5. uva 1440 & uvalive 4597

    题目链接 题意: DAG的最小路径覆盖,一条边可以被重复覆盖多次,但是一次只能沿着DAG的方向覆盖一条链,问最少覆盖次数. 思路: 看了半天没有思路,所以去搜索了题解,然后发现是有源汇上下界的最小流, ...

  6. IDA 头像是谁

    IDA图标上的女子:Ada Lovelace Ada Lovelace 简介: 阿达·奥古斯塔,19世纪诗人拜伦的女儿,数学家.穿孔机程序创始人,建立了循环和子程序概念.为计算程序拟定“算法”,写作的 ...

  7. mybatis整合Spring编码

    mybatis整合Spring的核心代码 spring-dao.xml <?xml version="1.0" encoding="UTF-8"?> ...

  8. 磁盘阵列(RAID)

    RAID 0亦称为带区集.它将两个以上的磁盘并联起来,成为一个大容量的磁盘.在存放数据时,分段后分散存储在这些磁盘中,因为读写时都可以并行处理,所以在所有的级别中,RAID 0的速度是最快的.但是RA ...

  9. BZOJ1030 [JSOI2007]文本生成器[DP+AC自动机]

    我学到现在才是初三学弟的水平..哭 这里相当于求长度为$m$的,字符集$\{A...Z\}$的且不包含任一模式串的文本串个数.这是一个典型的AC自动机匹配计数问题. 设$f_{i,j}$表示在AC自动 ...

  10. VUE-文本-事件-属性指令

    一.Vue文本指令 文本指令: 1.{{ }} 2.v-text:不能解析html语法的文本,会原样输出 3.v-html:能解析html语法的文本 4.v-once:处理的标签的内容只能被解析一次 ...