字节流

IO 字节流 以字节为单位进行读写
InputStream OutputStream 抽象类 基类 IO流
FileInputStream FileOutputStream 文件读写类 文件流
int read() void write(int v) 读写一个字节
int read(byte[] b) void write(byte[] b)
int read(byte[] b,int off,int len) void write(byte[] b,int off,int len)
什么时候读结束 读到文件末尾

BufferedInputStream BufferedOutputStream 缓冲流 带缓冲区
为了提高读写效率 内存和文件中的数据不同步
int read() void write() 读写一个字节
构造方法:需要 InputStream/OutputStream
flush() 强制输出到设备或者文件

ObjectInputStream ObjectOutputStream 对象流
构造也需要 InputStream/OutputStream
Object readObject() void writeObject(Object obj)

Serializable 序列化接口 没有抽象方法 只是 作为是否可以序列化的标识
private final static long serialversionUID = 111L;//指定
transient 修饰属性 表示该属性不需要进行序列和反序列化

Input: 输入 是从控制台或者文件输入到程序中
Output:输出 是从程序中输出到控制台或者文件

读文件是输入
写文件是输出

序列化:把内存中的对象转化成字符串的形式保存到文件或者进行网络传输
最终会把基础属性的值逐一找到
把地址信息保存到文件中一点作用也没有
类的版本信息也一并序列化
反序列化:把字符串形式的内容转换成对象

RandomAccessFile 文件随机读写类
int read()
void write(int v)
int read(byte[] b)
void write(byte[] b)
int read(byte[] b,int off,int len)
void write(byte[] b,int off,int len)
int readInt()
void writeInt(int v)

long length()
long getFilePointer()
void seek(long l)
int skipBytes(int v)

字节流

字符流
Reader Writer 抽象类
int read() void write(int v) 读写一个字符 两个字节 保存数据的文件和java源代码的文件保持一致就可以
int read(char[] cbuf) void write(char cbuf[])
int read(char[] cbuf,int off,int len) void write(char[] cbuf,int off,int len)

在package里面的.java程序会编译到bin目录下同名的package下面 变成.class文件
对于其它文件就会拷贝到bin目录下同名的package下面
通过 类名.class.getResource(filename) 访问到是bin目录下的文件 而不是src下面的文件

FileReader FileWriter 文件字符流

InputStreamReader OutputStreamWriter 转换流 设置编码
字节流 – 字符流 指定编码方式
不同的编码 一个字符所占的字节数不一样
int read() void write(int v) 把int的低16位写到文件中去 但是到了文件中是几个字节取决于编码方式

二进制 char Unicode编码 二个字节 一个字符
gbk 2个字节表示 一个中文汉字
utf-8 2-4个字节 对应一个中文汉字

编码不一样就成了乱码

BufferedReader BufferedWriter 缓冲字符流

                    PrintWriter        直接写入的时候换行 println方法

BufferedReader 跟 PrintWriter进行搭配

System 字段摘要
static PrintStream err “标准”错误输出流。
static InputStream in “标准”输入流。
static PrintStream out “标准”输出流。

RandomAccessFile 可读可写 随机 调整文件位置

字节流
InputStream OutputStream 抽象类基类
FileInputStream FileOutputStream File String
boolean append 是否追加
BufferedInputStream BufferedOutputStream 缓冲
InputStream/OutputStream来构建
void flush()
int read() void write()
int read(byte[] b) void write(byte[] b)
int read(byte[] b,int off,int len) void write(byte[] b,int off,int len)

对象流
ObjectInputStream ObjectOutputStream
InputStream/OutputStream来构建
Object readObject() void writeObject()

字符流
Reader Writer
InputStreamReader OutputStreamWriter 转换流
InputSream/OutputSream来构建
可以提供编码格式
FileReader FileWriter
File String

BufferedReader BufferedWriter
Reader/Writer来构造
PrintWriter
String/File/OutputSream/Writer
int read() void write(int v)
int read(char[] buf) void write(char[] buf)
String readLine() void write(String str)
String read() void println(String str)

作用:
平常用于读写文件
以行为单位: BufferedReader PrintWriter
指定编码: InputStreamReader OutputStreamWriter

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值