您的位置:首页 > 其它

缓冲流、转换流、打印流

2020-04-04 07:10 197 查看

一、缓冲流:提高读写速度
字节缓冲流:BufferedInputStream BufferedOutputStream
字符缓冲流:BufferedReader BufferedWriter
构造方法:
public BufferedInputStream(InputStream in);参数为字节输入流。创建一个新的字节缓冲输入流。
public BufferedOutputStream(OutputStream out);参数为字节输出流。创建一个新的字节缓冲输出流。
public BufferedReader(Reader in):参数为字符输入流。创建一个新的字符缓冲输入流
public BufferedWriter(Writer out);参数为字符输出流。创建一个新的字符缓冲输出流。(字符输出流在写的时候需要刷新)

字符缓冲流特有的方法:
BufferedReader:public String readLine():读一行文字
BufferedWriter:public void newLine():写一行行分隔符

二、转换流:解决Windows和idea编码不一致的问题
构造方法:
InputStreamReader(InputStream in);创建使用默认字符集的字节输入流
InputStreamReader(InputStream in,String charsetName);创建一个指定字符集的字节输入流
OutputStreamWriter(OutputStream out):创建使用默认字符集的字节输出流
OutputStreamWriter(OutputStream out,String charsetName);创建一个指定字符集的字节输出流

序列化:将对象写入到指定的文件中
public ObjectOutputStream(OutputStream out),参数为字节输出流(将对象写入),
public final void writeObject(Object obj);将指定的对象写到指定的文件中
序列化操作的条件:1、序列化对象必须实现Serializable接口
2、对象的属性必须是可序列化的,如果某个属性不需要可序列化,则该属性使用transient关键字修饰。

反序列化:将序列化得文件反序列化为程序中的对象
public ObjectInputStream(InputStream in);参数是字节输入流
public final Object readObject();读取一个对象
在反序列化的过程中涉及到一个序列化版本号的问题。当对象序列化以后,对象发生修改, 然后再进行反序列化就会
报异常:InvalidClassException
解决这个问题就是在对象里设置一个固定的版本号,用private static final long serialVersionUID=1;修饰

三、打印流;
构造方法;
public PrintStream(String fileName);打印到文件中
printStream(OutputStream out);参数传递输出流参数
printStream(File file);传递File类型参数

调用方法;print();println()
改变打印流的流向:static void setOut(printStream out);参数是字节流。

  • 点赞
  • 收藏
  • 分享
  • 文章举报
张爱娈 发布了8 篇原创文章 · 获赞 0 · 访问量 101 私信 关注
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: