淘先锋技术网

首页 1 2 3 4 5 6 7

Java中读写文件时需要用到输入流和输出流,其中字节流和字符流是最基本的两种流。在进行文件操作时,需要根据实际需求选择适当的流进行操作。

字节流使用InputStream和OutputStream,可以读取和写入8 bit字节,适合于处理二进制文件或者文本文件中的字节流。字节流适用于处理图片、音频、视频等文件,但是不适合处理纯文本。

//读取文件中的字节流
try (InputStream in = new FileInputStream("test.txt")) {
byte[] bytes = new byte[1024];
int len = -1;
while ((len = in.read(bytes)) != -1) {
System.out.println(new String(bytes, 0, len));
}
} catch (IOException e) {
e.printStackTrace();
}
//写入字节到文件中
try (OutputStream out = new FileOutputStream("test.txt")) {
String str = "Hello World!";
byte[] bytes = str.getBytes();
out.write(bytes);
} catch (IOException e) {
e.printStackTrace();
}

字符流使用Reader和Writer,可以读取和写入16 bit Unicode字符,适合于处理文本文件。字符流以字符为单位进行操作,可以自动进行字符编码转换,更适合处理中文或者其他Unicode字符集的纯文本。

//读取文件中的字符流
try (Reader reader = new FileReader("test.txt")) {
char[] chars = new char[1024];
int len = -1;
while ((len = reader.read(chars)) != -1) {
System.out.println(new String(chars, 0, len));
}
} catch (IOException e) {
e.printStackTrace();
}
//写入字符到文件中
try (Writer writer = new FileWriter("test.txt")) {
String str = "Hello World!";
writer.write(str);
} catch (IOException e) {
e.printStackTrace();
}

总之,在使用Java进行文件操作时,字节流主要用于处理二进制文件和文本文件中的字节流,字符流主要用于处理纯文本文件。