Java 输入/输出——处理流(ObjectIO)
Object流:直接将Object流写入或读出。
- TestObjectIO.java
- transient关键字(英文名:透明的,可以用来修饰成员变量(实例变量),transient修饰的成员变量(实例变量)在serializable序列化时不予考虑)
- serializable接口(可以被序列化,属于标记性接口,里面没有定义方法,打标机给编译器看,编译器看到了则认为该类可以被序列化)
- externalizable接口
package com.zyjhandsome.io;
import java.io.*;
public class TestObjectIO {
public static void main(String[] args) {
// TODO Auto-generated method stub
T t = new T();
t.k = 8;
try {
FileOutputStream fos = new FileOutputStream("D:\\zhaoyingjun\\else\\Test\\TestObjectIO.log");
ObjectOutputStream oos = new ObjectOutputStream(fos);
oos.writeObject(t);
oos.flush();
oos.close();
FileInputStream fis = new FileInputStream("D:\\zhaoyingjun\\else\\Test\\TestObjectIO.log");
ObjectInputStream ois = new ObjectInputStream(fis);
try {
T tReaded = (T)ois.readObject();
System.out.println(tReaded.i + " + " + tReaded.j + " + " + tReaded.d + " + " + tReaded.k + " = ");
System.out.println(tReaded.i + tReaded.j + tReaded.d + tReaded.k);
} catch (ClassNotFoundException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
}
class T implements Serializable
{
int i = 10;
int j = 9;
double d = 2.3;
int k = 15;
}
输出结果:
10 + 9 + 2.3 + 8 =
29.3
结合transient关键字使用:
package com.zyjhandsome.io;
import java.io.*;
public class TestObjectIO {
public static void main(String[] args) {
// TODO Auto-generated method stub
T t = new T();
t.k = 8;
try {
FileOutputStream fos = new FileOutputStream("D:\\zhaoyingjun\\else\\Test\\TestObjectIO.log");
ObjectOutputStream oos = new ObjectOutputStream(fos);
oos.writeObject(t);
oos.flush();
oos.close();
FileInputStream fis = new FileInputStream("D:\\zhaoyingjun\\else\\Test\\TestObjectIO.log");
ObjectInputStream ois = new ObjectInputStream(fis);
try {
T tReaded = (T)ois.readObject();
System.out.println(tReaded.i + " + " + tReaded.j + " + " + tReaded.d + " + " + tReaded.k + " = ");
System.out.println(tReaded.i + tReaded.j + tReaded.d + tReaded.k);
} catch (ClassNotFoundException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
}
class T implements Serializable
{
int i = 10;
int j = 9;
double d = 2.3;
transient int k = 15;
}
输出结果:
10 + 9 + 2.3 + 0 =
21.3
Java 输入/输出——处理流(ObjectIO)的更多相关文章
- Java 输入/输出——处理流(BufferedStream、PrintStream、转换流、推回输入流)
关于使用处理流的优势,归纳起来就是两点:(1)对于开发人员来说,使用处理流进行输入/输出操作更简单:(2)使用处理流执行效率更高. 1.BufferedInputStream/BufferedOutp ...
- Java 输入/输出——处理流(RandomAccessFile)
RandomAccessFile是Java输入/输出流体系中功能最丰富的文件内容访问类,它提供了众多的方法来访问文件内容,它既可以读取文件内容,也可以向文件输出数据.与普通的输入/输出流不同的是,Ra ...
- Java 输入/输出——处理流(DataInputStream/DataOutputStream、ByteArrayInputStream/ByteArrayOutputStream)
DataInputStream和DataOutputStream分别继承字节流InputStream和OutputStream,它属于处理流,需要分别“套接”在InputStream和OutputSt ...
- Java 输入/输出 反射
Java 输入/输出 反射 输入输出和反射 一.数据流的基本概念 流一般分为 ( Input Stream ) 和输出流 ( Output Stream ) 两类,但这种划分并不是绝对的.比如一 ...
- Java输入/输出教程
Java输入/输出(I/O)处理从源读取数据并将数据写入目标.通常,读取存储在文件中的数据或使用I/O将数据写入到文件中. java.io和java.nio包中包含处理输入/输出的Java类.java ...
- [linux] 输入&输出&错误流
输入&输出&错误流 Linux中有三种标准输入输出,分别是STDIN,STDOUT,STDERR,对应的数字分别是0,1,2. 标准 数字 含义 STDIN 0 标准输入,默认从键盘读 ...
- Java 输入/输出——字节流和字符流
1.流的分类 (1)输入流和输出流(划分输入/输出流时是从程序运行所在内存的角度来考虑的) 输入流:只能从中读取数据,而不能向其写入数据. 输出流:只能向其写入数据,而不能从中读取数据. 输入流主要由 ...
- JAVA输入/输出系统中的其他流学习笔记
一.字节数组流 字节数组流类能够操作内存中的字节数组,它的数据是一个字节数组.字节数组流类本身适配器设计模式,它把字节数组类型转为流类型使得程序能够对字节数组进行读写操作. 1.ByteArrayIn ...
- Java输入/输出(I/O)流的分类总结
java.io中有四个重要的抽象类: InputStream(字节输入流) Reader(字符输入流) OutputStream(字节输出流) Writer(字符输出流) 其中,InputStream ...
随机推荐
- java实现urlencode
https://www.cnblogs.com/del88/p/6496825.html ****************************************************** ...
- pandas删除缺失数据(pd.dropna()方法)
1.创建带有缺失值的数据库: import pandas as pd import numpy as np df = pd.DataFrame(np.random.randn(5, 3), ind ...
- TCP拥塞控制-慢启动、拥塞避免、快重传、快启动
一般原理:发生拥塞控制的原因:资源(带宽.交换节点的缓存.处理机)的需求>可用资源. 作用:拥塞控制就是为了防止过多的数据注入到网络中,这样可以使网络中的路由器或者链路不至于过载.拥塞控制要做的 ...
- 使用ActivityGroup需要注意的地方
Group里面的所有“孩子Activity”不能直接调用finish(),只能等ActivityGroup调用它自己的finish()后,会自动调用所有“孩子Activity”的finish().
- idea生成类注释和方法注释的正确方法
系统:Mac OS idea版本:2017.3.1 ---------------- 生成类注释 打开Preferences Editor -> File and Code Templates ...
- 嵌入式开发之hi3519---进程线程间的同步和互斥,条件变量、信号了、互斥锁等
sem_post 最安全 sem 有序,会卡顿 阻塞 mutex 无序,不能同步 http://blog.chinaunix.net/uid-20671208-id-4935154.html ht ...
- 总结一下搭建简单Web服务器的一些方法
使用nodejs+anywhere模块搭建静态文件服务器 anywhere随时随地将你的当前目录变成一个静态文件服务器的根目录. 安装npm install anywhere -g,然后进入任意目录在 ...
- duilib进阶教程 -- 在MFC中使用duilib (1)
由于入门教程的反响还不错,因此Alberl就以直播的形式来写<进阶教程>啦,本教程的前提: 1.请先阅读<仿迅雷播放器教程> 2.要有一定的duilib基础,如果还没,请先阅读 ...
- 有重复行,查询时只保留最新一行的sql
一.表结构如下:表名test 二.sql select temp.* from (select test.*, row_number() over(partition by obd_code orde ...
- Docker学习之——Node.js+MongoDB+Nginx环境搭建(一)
最近在学习Node.js相关知识,在环境搭建上耗费了不少功夫,故此把这个过程写下来同大家分享一下,今天我先来介绍一下Docker,有很多人都写过相关知识,还有一些教程,在此我只想写一下,我的学习过程中 ...