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());