在Java中文件的读取和写入操作都通过流(stream)来进行。
我们对于流并不陌生,因为在C++中已经有了这个概念。
在Java中,最主要的四个流如下:
[color=blue][b]读取:
InputStream
Reader
写入:
OutputStream
Writer[/b][/color]
Stream用来处理单纯的字节,而Reader和Writer用来处理Unicode。
例如,当我们需要读写中文的时候,我们就需要使用Reader和Writer。
例如,我们需要对某个文件进行缓冲读取的时候,可以这样:
[color=green]
DataInputStream din = new DataInputStream(
new BufferedInputStream(
new FileInputStream("文件完整路径")));[/color]
读取简单纯英文字符文件的代码:
读取带有中文的Unicode字符文件的代码:
我们对于流并不陌生,因为在C++中已经有了这个概念。
在Java中,最主要的四个流如下:
[color=blue][b]读取:
InputStream
Reader
写入:
OutputStream
Writer[/b][/color]
Stream用来处理单纯的字节,而Reader和Writer用来处理Unicode。
例如,当我们需要读写中文的时候,我们就需要使用Reader和Writer。
例如,我们需要对某个文件进行缓冲读取的时候,可以这样:
[color=green]
DataInputStream din = new DataInputStream(
new BufferedInputStream(
new FileInputStream("文件完整路径")));[/color]
读取简单纯英文字符文件的代码:
package corejava2.io.stream;
import java.io.*;
public class InputStreamTest {
public static void main(String[] args) {
try {
DataInputStream din = new DataInputStream(
new BufferedInputStream(
new FileInputStream("E:\\test_stream.txt")));
int c;
while ((c = din.read()) != -1)
System.out.print((char) c);
} catch (FileNotFoundException e) {
e.printStackTrace();
} catch (Exception e) {
e.printStackTrace();
}
}
}
读取带有中文的Unicode字符文件的代码:
package corejava2.io.reader;
import java.io.*;
public class InputStreamReaderTest {
public static void main(String[] args) {
try {
InputStreamReader in = new InputStreamReader(
new FileInputStream("E:\\test_stream.txt"));
int c;
while ((c = in.read()) != -1)
System.out.print((char) c);
} catch (FileNotFoundException e) {
e.printStackTrace();
} catch (Exception e) {
e.printStackTrace();
}
}
}