java中字符输入输出流
程序员文章站
2024-03-23 22:10:28
...
由于字节流不能很好地操作Unicode字符,例如一个汉字在文件中占用连个字节,如果使用字节流,读取不当会出现乱码现象
Reader:用于读取字符流的抽象类,其部分方法如下
FileRead:是用于读取字符流,是Reader的子类,其构造方法如下
这里演示读取a.txt文件
import java.io.FileNotFoundException;
import java.io.FileReader;
import java.io.IOException;
import java.io.Reader;
public class Main {
public static void main(String[] args) {
try {
Reader r = new FileReader("C:\\Users\\Administrator\\Desktop\\a.txt");
int n;
char[] chars = new char[3];
while ((n = r.read(chars)) != -1) {
String s = new String(chars,0,n);
System.out.println(s);
}
r.close();
} catch (IOException e) {
e.printStackTrace();
}
}
}
Writer:用于写入字符流的抽象类,write方法将数据首先写入到缓冲区,每当缓冲区溢出时,缓冲区的内容将被自动写入到目的地,如果关闭流,缓冲区的内容会立即写入到目的地。流调用flush()方法可以里立即冲洗当前的缓冲区,即将缓冲区的内容写到目的地,其部分方法如下
FileWriter:是用于写入字符流,是Writer的子类,其构造方法如下
这里演示读取a.txt文件并写入到b.txt文件
import java.io.*;
public class Main {
public static void main(String[] args) {
try {
Reader r = new FileReader("C:\\Users\\Administrator\\Desktop\\a.txt");
Writer w = new FileWriter("C:\\Users\\Administrator\\Desktop\\b.txt");
int n;
char[] chars = new char[3];
while ((n = r.read(chars)) != -1) {
w.write(chars,0,n);
}
r.close();
w.flush();
w.close();
} catch (IOException e) {
e.printStackTrace();
}
}
}
上一篇: 王爽 《汇编语言》 读书笔记 十 CALL和RET指令
下一篇: jvm性能调优相关