字符流
输入流与输出流
字节输入流:InputStream:字节输入流的所有类的超类。
字节输出流:OutputStream:输出字节流的所有类的超类
字符输入流:Reader:字符输入流的所有类的超类。
字符输出流:Writer:输出字符流的所有类的超类
字符输入流读取文本文件
- 使用字符输入流读取文本文件,要先设置好编码格式,我们在读取数据时,就不用担心编码转换的问题
代码演示
package com.tian.text;
import java.io.*;
public class Test3 {
public static void main(String[] args) throws IOException {
// InputStreamReader reader = new FileReader("D:\file1\1.txt");
Reader reader = new InputStreamReader(new FileInputStream("D:\\file1\\1.txt"), "UTF-8");
char[] data = new char[1024];
int len = -1;
while ((len = reader.read(data)) != -1) {
System.out.println(new String(data, 0, len));
}
reader.close();
}
}
字符输出流
- 字符输出流,写出数据到文件
package com.tian.text;
import java.io.*;
public class Test3 {
public static void main(String[] args) throws IOException {
// Writer writer = new FileWriter("D:\\file1\\1.txt");
OutputStream output = new FileOutputStream("D:\\file1\\1.txt");
Writer writer = new OutputStreamWriter(output, "UTF-8");
writer.write("我想试试FileWriter能不能写出数据-------------------------------------");
writer.flush();// 保存的动作 还可以继续写数据
writer.close();// 关闭+保存的动作 一旦关闭就不能写数据
}
}
复制文本文件
代码演示
package com.tian.text;
import java.io.*;
public class Test3 {
public static void main(String[] args) throws IOException {
//InputStream input = new FileInputStream("D:\\file1\\1.txt");
// Reader reader = new InputStreamReader(input, "UTF-8");
System.out.println("------上面第一种reader,可以设置编码-------");
FileReader reader = new FileReader("D:\\file1\\1.txt");
Writer writer = new FileWriter("D:\\file2\\2.txt");
char[] data = new char[1024];
int len = -1;
while ((len = reader.read(data)) != -1) {
writer.write(data, 0, len);
}
writer.close();
reader.close();
}
}