import java.io.BufferedReader; import java.io.BufferedWriter; import java.io.FileReader; import java.io.IOException; import java.io.OutputStreamWriter; public class Test2 { public static void main(String[] args) throws IOException { /* * 需求:读取文本文件中的数据,将其打印到控制台上 * * 明确一:有源吗?有有目的吗?有 * 源:InputStream Reader * 目的: OutputStream Writer * * 明确二:是纯文本.java .txt .properties (注:.word不是纯文本) * 源: Reader * 目的:Writer * * 明确三:明确设备 * 源设备:硬盘 File * 目的设备:显示器 System.out * * FileReader fr = new FileReader("a.txt"); * OutputStream(PrintStream) out = System.out; * * fr读取数据到数组中。 * 使用PrintStream直接调用println方法就可以打印, * 如果使用OutputStream可以调用write方法就可以将数据写入到显示器上 * *麻烦 * *因为源都是字符数据,可以通过字符流的操作,将字符转成字节在给显示器。 *需要额外功能吗?需要 *字符-->字节 *FileReader fr = new FileReader("a.txt"); *OutputStreamWriter osw = new OutputStreamWriter(System.out); * *还需要额外功能吗?高效 *BufferedReader bufr = new BufferedReader(new FileReader("a.txt")) *BufferedWriter bufw = new BufferedWriter(new OutputStreamWriter(System.out)) * *读取一行数据 *写入一行数据 * */ methodDemo2(); } public static void methodDemo2() throws IOException { BufferedReader bufr = new BufferedReader(new FileReader("tempfile\a.txt")); BufferedWriter bufw = new BufferedWriter(new OutputStreamWriter(System.out)); String line = null; while((line=bufr.readLine())!=null){ bufw.write(line); bufw.flush(); } } }