InputStream,OutputStream,Reader和Writer类的功能有何异同?
时间: 2024-02-02 21:54:25 浏览: 217
2020JAVA面试题
InputStream,OutputStream,Reader和Writer类都是Java IO类库中的重要类,它们的功能如下:
1. InputStream是一个抽象类,它提供了读取字节流的方法,如read()和read(byte[] b)等。它的子类如FileInputStream和ByteArrayInputStream可以用来读取不同来源的字节流。
2. OutputStream也是一个抽象类,它提供了写入字节流的方法,如write(byte[] b)和flush()等。它的子类如FileOutputStream和ByteArrayOutputStream可以用来写入不同目标的字节流。
3. Reader是一个抽象类,它提供了读取字符流的方法,如read()和read(char[] cbuf)等。它的子类如FileReader和StringReader可以用来读取不同来源的字符流。
4. Writer也是一个抽象类,它提供了写入字符流的方法,如write(String str)和flush()等。它的子类如FileWriter和StringWriter可以用来写入不同目标的字符流。
它们的异同点如下:
相同点:
1. 都是Java IO类库中的类。
2. 都是用于读写数据的类。
3. 都提供了不同的子类来处理不同的数据来源和目标。
4. 都有相似的方法,如read()和write()。
不同点:
1. InputStream和OutputStream是字节流,而Reader和Writer是字符流。
2. InputStream和OutputStream是读写字节数据,而Reader和Writer是读写字符数据。
3. InputStream和Reader是用于读取数据的类,而OutputStream和Writer是用于写入数据的类。
4. InputStream和Reader提供了字节和字符转换的方法,如InputStreamReader和BufferedReader,而OutputStream和Writer没有提供类似的方法。
阅读全文