IO分为字节流和字符流,字符就是简单的字符串存储,从理伦上讲,在内存中所有的数据都是二进制,是一个字节一个字节的序列,所以字节流可以存储像图片、图像等文件。现在有一个文件,分别用字节流和字符流来实现。
[b]1. 字符读取(一次读若干个数据)[/b]
[b]2. 字符读取(一次读一个字符)[/b]
[b]3. 字符读取(一行一行地读)[/b]
[b]4. 字节读取(一次读完)[/b]
[b]5. 字节读取(一次读一个字节)
[/b]
[b]6. 字节读取(一次读若干个字节)[/b]
[b]1. 字符读取(一次读若干个数据)[/b]
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());[b]2. 字符读取(一次读一个字符)[/b]
FileReader reader = new FileReader(file);
int ch;
while ((ch = reader.read()) != -1) {
buffer.append((char) ch);
}
System.out.println(buffer.toString());[b]3. 字符读取(一行一行地读)[/b]
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);[b]4. 字节读取(一次读完)[/b]
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);[b]5. 字节读取(一次读一个字节)
[/b]
FileInputStream in = new FileInputStream(file);
int data;
while ((data = in.read()) != -1) {
buffer.append((char) data);
}
System.out.println(buffer.toString());[b]6. 字节读取(一次读若干个字节)[/b]
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());
本文通过实例展示了使用Java中的字节流和字符流读取文件的不同方式,包括按字符、按行以及一次性读取整个文件的方法。

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



