字符缓冲流和对象流

176 阅读3分钟

「这是我参与11月更文挑战的第19天,活动详情查看:2021最后一次更文挑战

1 输入输出流的源或者目的地并不仅限于磁盘、网络 2 内存也可以作为输入输出流的来源和目的地 3 以内存作为源或者目的地的流称为内存流

1. 构造方法

输入流

  • public BufferedReader(Reader in) :创建一个新的默认大小输入缓冲区的缓冲字符输入流。
  • public BufferedReader(Reader in, int sz):创建一个新的指定大小输入缓冲区的缓冲字符输入流。

参数

  • Reader in:字符输入流
  • 我们可以传递FileReader,缓冲流会给FileReader增加一个缓冲区,提高FileReader的读取效率返回值吗, 包含该行内容的字符串,不包含任何行终止符,如果已到达流末尾,则返回 null

输出流

  • public BufferedWriter(Writer out): 创建一个新的默认大小输出缓冲区的缓冲字符输出流。
  • public BufferedWriter(Writer out, int sz):创建一个使用给定大小输出缓冲区的新缓冲字符输出流。

参数

  • Writer out:字符输出流
  • 我们可以传递FileWriter,缓冲流会给FileWriter增加一个缓冲区,提高FileWriter的写入效率
  • int sz:指定缓冲区的大小,不写就【默认大小】

构造举例,代码如下:

// 创建字符缓冲输入流
BufferedReader br = new BufferedReader(new FileReader("br.txt"));
// 创建字符缓冲输出流
BufferedWriter bw = new BufferedWriter(new FileWriter("bw.txt"));

1234

2. 使用步骤

输出流

  1. 创建字符缓冲输出流对象,构造方法中传递字符输出流
  2. 调用字符缓冲输出流中的方法write,把数据写入到内存缓冲区中
  3. 调用字符缓冲输出流中的方法flush,把内存缓冲区中的数据,刷新到文件中
  4. 释放资源

输入流

  1. 创建字符缓冲输入流对象,构造方法中传递字符输入流
  2. 使用字符缓冲输入流对象中的方法read/readLine读取文本
  3. 释放资源

字符缓冲流分为

BufferedReaderBufferedWriter

字符缓冲输入流的构造方法

字符缓冲输入流BufferedReader类的构造方法
public BufferedReader(Reader in)

 FileReader inOne=new FileReader("a1.txt");
 BufferedReader inTwo=new BufferedReader(inOne)

字符缓冲输入流的读方法

BufferedReader类读取一行数据的方法
public String readLine() throws IOException

字符缓冲流输出流

字符缓冲输出流BufferedWriter类的构造方法
public BufferedWriter(Writer out)

FileWriter tofile=new FileWriter("a1.txt");
BufferedWriter out1=new BufferedWriter(tofile) 

字符缓冲流输出流的写方法

BufferedWriter类增加行分隔符的方法
public void newLine() throws IOException
对象流分为
对象输入流   ObjectInputStream
对象输出流   ObjectOutputStream

对象输出流和对象输入流可以为应用提供对象持久化的功能,分别调用文件输出流和文件输入流来实现。另一种使用对象流的场景是,在不同主机用socket流在远程通信系统中传递传递数据。

对象输入流的构造方法

public ObjectInputStream(InputStream in)
从文件中读取对象时
• FileInputStream a= new FileInputStream("tom.txt");
• ObjectInputStream in = new ObjectInputStream(a);

对象输出流的构造方法

public ObjectOutputStream(OutputStream out)
将对象写入到文件时
• FileOutputStream b = new FileOutputStream("tom.txt");
• ObjectOutputStream out = new ObjectOutputStream(b);

对象流的成员方法

ObjectInputStream 类的读方法
public final Object readObject() throws
IOException, ClassNotFoundException

ObjectOutputStream 类的写方法
public final void writeObject(Object obj)
throws IOException