inputstreamreader和bufferedreader用法及实例讲解
时间: 2023-05-03 08:05:34 浏览: 270
InputStreamReader和BufferedReader是Java中常用的I/O类。InputStreamReader是字节流与字符流之间的桥梁,可以将字节流转换为字符流,而BufferedReader则是对字符输入流的包装,提供了一个缓冲区以便更高效、更灵活地读取字符。下面就这两个类的常见用法和实例做一个简单的讲解。
InputStreamReader的常见用法
1. 使用InputStreamReader读取文本文件。
InputStreamReader isr = new InputStreamReader(new FileInputStream(fileName), "UTF-8");
char[] buffer = new char[1024];
int length;
while ((length = isr.read(buffer)) != -1) {
System.out.println(new String(buffer, 0, length));
}
上述代码通过InputStreamReader读取文本文件,可以指定读取文件的编码方式。同时,读取到的字符数据不是直接被输出,而是通过缓冲数组进行存储。
2. 使用InputStreamReader从网络中读取数据。
InputStreamReader isr = new InputStreamReader(socket.getInputStream());
char[] buffer = new char[1024];
int length;
while ((length = isr.read(buffer)) != -1) {
System.out.println(new String(buffer, 0, length));
}
上述代码通过socket获取InputStreamReader对象,从网络流中读取传输的数据,并存储到缓冲数组中。
BufferedReader的常见用法
1. 使用BufferedReader逐行读取文件。
BufferedReader br = new BufferedReader(new FileReader(fileName));
String line;
while ((line = br.readLine()) != null) {
System.out.println(line);
}
上述代码通过BufferedReader逐行读取文件内容,并存储到line字符串中,如果读到文件末尾就会退出while循环。
2. 使用BufferedReader从网络中读取数据。
BufferedReader br = new BufferedReader(new InputStreamReader(socket.getInputStream()));
String line;
while ((line = br.readLine()) != null) {
System.out.println(line);
}
上述代码通过BufferedReader获取网络输入流,然后逐行读取数据并输出。
总结
通过上述的实例讲解,我们了解了InputStreamReader和BufferedReader的常见用法。在实际开发中,我们可根据具体场景的需要,对这两个类做出更灵活的运用。在Java I/O编程中,输入、输出的质量和效率是非常重要的,比如在数据量较大的情况下使用BufferedReader和InputStreamReader能够提高I/O性能和响应速度,提高程序的效率。
阅读全文