1.概述
- InputStream和Reader是所有输入流的基类
- InputStream(典型实现:FileInputStream):
- int read()
- int read(byte[] b)
- int read(byte[] b, int off, int len)
- Reader(典型实现FileReader)
- int read()
- int read(char[] c)
- int read(char[] c, int off, int len)
- 程序中打开的文件IO资源不属于内存里的资源,垃圾回收机制无法回收该资源,所以应该显式关闭文件IO资源。
2. 示例代码
InputStream流
package test.com.atguigu.javase.lesson10;
import org.junit.Test;
import java.io.*;
public class IOTestTest {
@Test
public void testInputStream() throws IOException {
//1.创建一个字节输入流
InputStream inputStream = new FileInputStream("hello.txt");
//2.读取文件内容
//-1:表示读取到文件结尾
//2.1 第一种:读取一个字节,效率很低,不建议使用
// int result = inputStream.read();
// while(result != -1){
// System.out.print((char)result);
// result = inputStream.read();
// }
//2.2 一次读取一组字符
byte[] buffer = new byte[2];
//返回文件的字节数
int len = 0;
while((len = inputStream.read(buffer)) != -1){
for(int i = 0; i < len; i++){
System.out.print((char)buffer[i]);
}
}
//把内容读取到字节数组的部分连续的元素中
// byte[] result = new byte[1024*10];
// inputStream.read(result, 10, inputStream.available());
//3.关闭流资源
inputStream.close();
}
}
Reader
public class IOTest{
/**
* 测试字符输入流
*/
@Test
public void testReader() throws IOException {
//利用字符输入流读取hello.txt 文档的内容,输出到控制台
Reader reader = new FileReader("hello.txt");
char[] buffer = new char[10];
int len = 0;
while((len = reader.read(buffer)) != -1){
for (int i = 0; i < len; i++){
System.out.print(buffer[i]);
}
}
}
}
Java IO 流之 InputStream 和 Reader 的使用
本文详细介绍了 Java 中的 InputStream 和 Reader 类的基本用法,包括如何使用它们来读取文件内容,并强调了在程序中正确关闭文件 IO 资源的重要性。
1256

被折叠的 条评论
为什么被折叠?



