目录:
1.java流式输入输出原理
2.输入输出流的分类
3.缓冲流:BufferedWriter
4.转换流:InputStreamWrite
5.数据流:DataInputStream
6.Print流:PrintWriter
7.Object流(序列化):serializable接口
1.java流式输入输出原理
2.输入输出流的分类
按数据流的方向:输入流、输出流
按处理数据单位不同:字节流、字符流
按功能不同:节点流、处理流
InputStream的基本方法:
int read() throws IOException:
int read(byte [] buffer) throws IOException:
void close() throws IOException:
OutputStream的基本方法:
void write() throws IOException:
void write(byte [] buffer) throws IOException:
void flush() throws IOException:
void close() throws IOException:在之前必写flush
Reader的基本方法(每次读两字节,即char):
和InputSteam对照相似
Writer的基本方法:
void wirte(String string) throws IOException:
其余对照OutputStream
3.缓冲流:
对数据读写提供了缓冲的功能,提高了读写的效率。
BufferedInputStream:带缓冲区,相当于在普通读中套上了另一层管道进行缓冲处理。
bis.readLine():可以直接用来读取一行
FileInputStream fis=new FileInputStream("d:\\share\\HelloWorld.java");
BufferedInputStream bis=new BufferedInputStream(fis);
4.转换流:InputStreamWrite
可以把字节流转换成字符流,即可以使用InputStreamWriter包装InputStream,则可以直接写入字符串,即write(“qqqqq”)
InputStreamWriter就是把InputStream转化成Writer。
isw.getEncoding():获取编码方式
5.数据流:DataInputStream
DataInputStream用于读取java基本的数据类型。
用法writeFloat(float)、
readLong()等等。
ByteArrayOutputStream:在内存中申请一块空间进行读写,可用Data…包装。
6.Print流:
PrintWriter和PrintStream
特点:①重载了print和println。②不会抛出异常。③有自动flush功能。
FileWriter fw=new FileWriter("d:\\logfile.log",true);//true表示往文件后面添加内容,不覆盖
PrintWriter pw=new PrintWriter(fw);
pw.println("*****");//将****写入log文件
7.Object流(序列化):
直接将Object写入或读出。
transient关键字:类中被transient修饰的对象,不予考虑,即置为null或0读入。
serializable接口(序列化):标记性接口。译为“可被序列化的”,“标记”是给编译器看的,编译器看到就知道实现了此接口的类是可被序列化的。
T t=new T();//T类必须已经实现了Serializable接口,类中被transient修饰的对象,不予考虑,即置为null或0读入
t.k=8;
FileOutputStream fos=new FileOutputStream("d:\\test.dat");
ObjectOutputStream oos=new ObjectOutputStream(fos);//用Object..包装管道
oos.writeObject(t);
oos.flush();
oos.close();
//读时同理
//先写两个管道
T tRead=(T)ois=new ObjectInputStream(fis);
System.out.println("tread.k");
enternalizable接口(外部化):实现了本接口,可以自己实现序列化,而不是直接使用系统默认序列化。
转载于:https://my.oschina.net/u/3786691/blog/1785231
发布者:全栈程序员-用户IM,转载请注明出处:https://javaforall.cn/101744.html原文链接:https://javaforall.cn
【正版授权,激活自己账号】: Jetbrains全家桶Ide使用,1年售后保障,每天仅需1毛
【官方授权 正版激活】: 官方授权 正版激活 支持Jetbrains家族下所有IDE 使用个人JB账号...