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. 操作MongoDB好用的图形化工具,Robomongo -> 下载 -> 安装

    一 下载 点击下载 -> https://robomongo.org/download 二 安装 直接下一步就行了 -> 择安装位置之后 -> 确认安装

  2. odoo 权限文件说明

    id,name,model_id:id,group_id:id,perm_read,perm_write,perm_create,perm_unlink (权限的定义)access_book_user ...

  3. shell脚本获取传递的参数

    1 脚本编写 #!/bin/bash 2 解释 $n 表示是第几个参数 $0 表示脚本命令本身 3 执行效果

  4. Pysnooper 一款大受欢迎的Debug模块

    Github地址 安装 PIP pip install pysnooper import pysnooper @pysnooper.snoop() def number_to_bits(number) ...

  5. List集合删除方法

    class Program { private static Random random = new Random((int)DateTime.Now.Ticks); static void Main ...

  6. QTP(5)

    一.检查点 1.位图检查点(Bitmap CheckPoint) (1)作用:主要用于检查UI界面,检查页面布局,包括控件位置.大小.颜色.状态等 (2)确定位图检查点的要素: a.检查哪个控件 b. ...

  7. 解决Windows jmeter Non HTTP response message: Address already in use: connect 错误(转载)

    jMeter报错: Response code: Non HTTP response code: java.net.BindExceptionResponse message: Non HTTP re ...

  8. BZOJ 4128: Matrix (矩阵BSGS)

    类比整数的做法就行了 1A爽哉 #include<bits/stdc++.h> using namespace std; typedef long long LL; const int M ...

  9. vue中 请求拦截 响应拦截设置

    第一,在项目的src中新建http.js文件,将以下代码复制进去 import axios from 'axios' import { Message, Loading } from 'element ...

  10. vue等诸多概念记录

    讲的很好,转载记录下,转载自: https://www.cnblogs.com/taowd/p/11808710.html vue学习笔记-遗留问题记录 Node.js是什么?对node.js的理解 ...