构造方法:
FileWriter(File file)
FileWriter(String fileName)
FileReader(File file)
FileReader(String fileName)
写数据方法:
* 一次写一个字符 write(int c)
* 一次写一个字符数组write(char[] cbuf)
* 一次写一个字符数组的一部分write(char[] cbuf, int off,int len)
* 一次写一个字符串write(String str)
* 一次写一个字符串的一部分write(String str,int off,int len)
字符输入流
* 字符输入流操作步骤:
A:创建字符输入流对象
FileReader fr = new FileReader(“a.txt”);
B:读取数据并显示在控制台
a:一次读取一个字符
一次读取一个字符
int ch;
while ((ch = fr.read()) != -1) {
System.out.print((char) ch);
}
* b:一次读取一个字符数组
char[] chs = new char[1024];
int len;
while ((len = fr.read(chs)) != -1) {
System.out.print(new String(chs, 0, len));
}
* C:释放资源
fr.close();
演示:
public class CopyFile {
public static void main(String[] args) throws IOException {
/** * 1.封装数据源和目的地 * 2.一次读写一个字符或者一次读写一个字符数组 * 3.关流 */
//封装数据源和目的地
FileReader fr = new FileReader("InputStreamReaderDemo.java");
FileWriter fw = new FileWriter("d.java");
//一次读写一个字符数组
char[] chs = new char[1024];
int len;
while ((len=fr.read(chs))!=-1) {
fw.write(chs, 0, len);
fw.flush();
}
//关流
fw.close();
fr.close();
}
}
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
- 11
- 12
- 13
- 14
- 15
- 16
- 17
- 18
- 19
- 20
- 21
- 22
- 23
- 24
- 25
- 26
- 27
- 28
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
- 11
- 12
- 13
- 14
- 15
- 16
- 17
- 18
- 19
- 20
- 21
- 22
- 23
- 24
- 25
- 26
- 27
- 28
注意:字符流输入输出流复制的文件是有要求的,简单来说只要是记事本打开文件的内容你能够看得懂,
就可以用字符流来进行复制,否则不行
具体原因:像复制MP3或者一些视频文件的时候,如果他的字节个数不是偶数的话,就会造成文件的缺损,
因为一个字符等于两个字节
高效流:
* BufferedReader:字符缓冲输入流
构造:BufferedReader(Reader in)
特殊方法:public String readLine():包含该行内容的字符串,不包含任何行终止符,如果已到达流末尾,则返回 null
* BufferedWriter:字符缓冲输出流
构造:BufferedWriter(Writer out)
特殊方法:public void newLine():会根据系统来确定写入不同的换行符