IO流
1:字节流
字节输入流
字节输出流
2:字符流
字符输入流(☆☆☆☆)
Reader方法:
public int read():读取单个字符,并返回成int,如果已到达流的末尾,则返回 -1
public int read(char[] cbuf):将字符读入数组,返回读取的字符数,如果已到达流的末尾,则返回 -1
public static void main(String[] args) throws IOException {
FileReader fr = new FileReader("xxx.txt"); //创建字符输入流对象
int c;
while((c = fr.read()) != -1) { //通过项目默认的码表一次读取一个字符
System.out.print((char)c); //将c强制类型转换成 char
}
fr.close();
}
字符输出流(☆☆☆☆)
Writer的方法:
public void write(int c):写入单个字符。要写入的字符包含在给定整数值的 16 个低位中,16 高位被忽略。c - 指定要写入字符的 int类型。
public void write(char[] cbuf):写入字符数组。
public abstract void write(char[] cbuf,int off, int len):写入字符数组的某一部分。cbuf - 字符数组,off - 开始写入字符处的偏移量,len - 要写入的字符数
public void write(String str):写入字符串。(字符流特有的方法,字节流里面没有)
public void write(String str,int off, int len):写入字符串的某一部分。str - 字符串,off - 相对初始写入字符的偏移量,len - 要写入的字符数 (字符流特有的方法,字节流里面没有)
public static void main(String[] args) throws IOException {
FileWriter fw = new FileWriter("yyy.txt");
fw.write("大家好,基础班快接近尾声了,大家要努力,要坚持!!!");
fw.write(97);
fw.close();
}
字符流拷贝文件 一次一个字符(☆☆☆☆☆)
public static void demo1() throws FileNotFoundException, IOException {
FileReader fr = new FileReader("xxx.txt");
FileWriter fw = new FileWriter("zzz.txt");
int c;
while((c = fr.read()) != -1) {
fw.write(c);
}
fr.close();
fw.close(); //Writer类中有一个char[] chs = new char[1024]的小缓冲区,如果不关流,就会将内容写到缓冲区里,关流会将缓冲区内容刷新,再关闭
} |
|