Java IO字符流读取文件总结
本文对java IO字符流的读取文件进行总结,字符流的读取方式也可以像字节流一样,但是也有它独有的方式。
一.示例1
Buffered、ReaderInput、StreamInputStreamReader的配合使用
package com.xykj.reader;
import java.io.BufferedReader;
import java.io.FileInputStream;
import java.io.IOException;
import java.io.InputStream;
import java.io.InputStreamReader;
public class ReaderTest {
/*
* 以字符的形式读取数据
*/
public static void main(String[] args) {
BufferedReader reader = null;
InputStream is = null;
InputStreamReader isr = null;
try {
// 从哪里读取文件
is = new FileInputStream("D:/java/Hello.txt");
// 把字符流转换成字节流 的转换流
isr = new InputStreamReader(is);
// 把转换流装换成字符流
reader = new BufferedReader(isr);
//把读取到的内容添加到StringBuilder对象
StringBuilder sb=new StringBuilder();
/* System.out.println("way1");
// 读取字符流的方法1:(和读取字节一样)
char[] chars = new char[1024];
int len = 0;
while ((len = reader.read(chars)) != -1) {
// 字符流可以直接打印输出,字节要先添加到字符串中再输出
sb.append(new String(chars, 0, len));
}*/
// 读取字符流的方法2:( 字符流独有的)
System.out.println("way2");
String line = "";
// 如果返回null就表明是没有内容了
while ((line = reader.readLine()) != null) {
sb.append(line);
}
System.out.println(sb);
} catch (Exception e) {
e.printStackTrace();
} finally {
try {
reader.close();
isr.close();
is.close();
} catch (IOException e) {
e.printStackTrace();
}
}
}
}
二.示例2
BufferedReader、FileReader的搭配使用
package com.xykj.reader;
import java.io.BufferedReader;
import java.io.FileReader;
import java.io.IOException;
public class ReaderTest3 {
/*
* 以字符的形式读取数据
*/
public static void main(String[] args) {
BufferedReader reader = null;
//FileReader已经封装有了InputStream和InputStreamReader这两个类
FileReader fr=null;
try {
// 从哪里读取文件
fr=new FileReader("D:/java/Hello.txt");
reader = new BufferedReader(fr);
/*System.out.println("way1");
// 读取字符流的方法1:(和读取字节一样)
char[] chars = new char[1024];
int len = 0;
while ((len = reader.read(chars)) != -1) {
// 字符流可以直接打印输出,字节要先添加到字符串中再输出
System.out.println(new String(chars, 0, len));
}
*/
System.out.println("way2");
// 读取字符流的方法2:( 字符流独有的)
String line = "";
// 如果返回null就表明是没有内容了
while ((line = reader.readLine()) != null) {
System.out.println(line);
}
} catch (Exception e) {
e.printStackTrace();
} finally {
try {
fr.close();
reader.close();
} catch (IOException e) {
e.printStackTrace();
}
}
}
}
以上是两种字符流读取文件的基本方式,而第二种是常用的方式,也是我们需要掌握的。