Java 字节流与字符流的区别与代码示例
时间: 2023-07-28 22:51:09 浏览: 92
Java字节流与字符流的区别:
字节流处理的是字节数据,字符流处理的是字符数据。在Java中,一个字符占两个字节,因此字符流在处理时会自动进行编码转换。
字节流可以处理所有类型的数据,包括文本、图像、视频等,而字符流只能处理文本数据。
字节流通常用于处理二进制文件,如图片、音频、视频等,字符流通常用于处理文本文件。
代码示例:
字节流示例:
```java
import java.io.*;
public class ByteStreamDemo {
public static void main(String[] args) {
try {
File file = new File("test.txt");
FileOutputStream fos = new FileOutputStream(file);
String s = "Hello, world!";
byte[] bytes = s.getBytes();
fos.write(bytes);
fos.close();
FileInputStream fis = new FileInputStream(file);
byte[] bytes1 = new byte[(int) file.length()];
fis.read(bytes1);
String s1 = new String(bytes1);
System.out.println(s1);
fis.close();
} catch (IOException e) {
e.printStackTrace();
}
}
}
```
字符流示例:
```java
import java.io.*;
public class CharacterStreamDemo {
public static void main(String[] args) {
try {
File file = new File("test.txt");
FileWriter fw = new FileWriter(file);
String s = "Hello, world!";
fw.write(s);
fw.close();
FileReader fr = new FileReader(file);
char[] chars = new char[(int) file.length()];
fr.read(chars);
String s1 = new String(chars);
System.out.println(s1);
fr.close();
} catch (IOException e) {
e.printStackTrace();
}
}
}
```
这两个示例分别演示了使用字节流和字符流进行文件读写的过程。字节流示例中,使用 FileOutputStream 写入字节数据,使用 FileInputStream 读取字节数据;字符流示例中,使用 FileWriter 写入字符数据,使用 FileReader 读取字符数据。