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. Docker安装&java-Zookeeper进行操作

    Docker安装Zookeeper下载Zookeeper镜像 docker pull zookeeper 启动容器并添加映射 docker run --privileged=: -d zookeepe ...

  2. R安装包的问题

    package 'tswge' is not available (for R version 3.5.1) install.packages('tswge', repos="http:// ...

  3. C# 中 ContextMenuStrip 和 ContextMenu区别

    简单来说,就是版本不同,只不过是升级后建议功能更加强大的ContextMenuStrip罢了,升级后的元件功能更强 . ContextMenu是VS2005里的,而ContextMenuStrip是V ...

  4. Bmake

    Bmake is a common makefile framework. Both support native build and cross build. Easy for use, modif ...

  5. MySQL单表查询实例

    数据表准备 ​```mysql create table emp( id int not null unique auto_increment, name varchar(20) not null, ...

  6. 并发编程:生产消费模型、死锁与Rlock、线程、守护线程、信号量、锁

    一.生产者消费者模型1 二.生产者消费者模型2 三.守护线程 四.常用方法 五.启动线程的另一种方式 六.锁 七.锁死 八.死锁 九.单个锁能不能死锁 十.信号旗 一.生产者消费者模型1 import ...

  7. gulp connect.static is not a function

    npm install --save serve-static var serveStatic = require('serve-static');

  8. 8.Dropout

    import tensorflow as tf from tensorflow.examples.tutorials.mnist import input_data #载入数据集 mnist = in ...

  9. 关于TAILQ链表节点删除问题

    这两天偶遇无线驱动中对链表节点删除的问题,刚开始修改代码的时候并没有很在意,把TAILQ链表当成一般的链表来处理,虽然修改以后没有出现段错误,但是后面review代码的时候发现,这样改不对.后面花了点 ...

  10. 搭建私有CA

    一.实验目的 搭建私有CA并使其可以实现公司内部的的签名服务. 二.实验环境: 系统架构:Centos7(服务器).Centos6(需要申请证书的服务器)需要的软件包:openssl.openssl- ...