Java IO 读文件的各种方法总结

IO分为字节流和字符流,字符就是简单的字符串存储,从理伦上讲,在内存中所有的数据都是二进制,是一个字节一个字节的序列,所以字节流可以存储像图片、图像等文件。现在有一个文件,分别用字节流和字符流来实现。

1. 字符读取(一次读若干个数据)

FileReader reader = new FileReader(file);
char buf[] = new char[1024];
int ch;
while ((ch = reader.read(buf)) != -1) {
	buffer.append(buf);
	buf = new char[1024]; // 一定要清掉啊
}
System.out.println(buffer.toString());


2. 字符读取(一次读一个字符)

FileReader reader = new FileReader(file);
int ch;
while ((ch = reader.read()) != -1) {
	buffer.append((char) ch);
}
System.out.println(buffer.toString());


3. 字符读取(一行一行地读)
BufferedReader reader = null;
String data;
InputStreamReader isr = new InputStreamReader(
				new FileInputStream(file), "GB2312");
reader = new BufferedReader(isr);
while ((data = reader.readLine()) != null) {
	buffer.append(data);
}
reader.close();
System.out.println(buffer);



4. 字节读取(一次读完)

FileInputStream in = new FileInputStream(file);
int size = in.available();
byte[] data = new byte[size];
in.read(data);
in.close();
String str = new String(data, "GB2312");
System.out.println(str);


5. 字节读取(一次读一个字节)

FileInputStream in = new FileInputStream(file);
int data;
while ((data = in.read()) != -1) {
	buffer.append((char) data);
}
System.out.println(buffer.toString());


6. 字节读取(一次读若干个字节)

FileInputStream in = new FileInputStream(file);
byte buf[] = new byte[1024];
while (in.read(buf) != -1) {
	buffer.append(new String(buf, "GB2312"));
	buf = new byte[1024];
}
System.out.println(buffer.toString());

猜你喜欢

转载自gaofulai1988.iteye.com/blog/2268020
今日推荐