源数据源是标准输入设备(键盘、鼠标、触摸屏)等输入设备。在java中用System.in 得到一个InputStream字节输入流。
标准输入流:System.in 返回类型为InputStream字节输入流
从控制台输入一串字符,并写入文件中。
1 public static void main(String[] args) throws IOException { 2 3 //1.控制台輸入 4 InputStream in=System.in; 5 //2.转换流 字节流转为字符流 6 InputStreamReader inputStreamReader=new InputStreamReader(in,"GBK"); 7 //3.强化字符流,可以输入多行字符串 8 BufferedReader bufferedReader=new BufferedReader(inputStreamReader); 9 10 //4.链接本地,创建路径 11 File file=new File("d:\\sxt2019\\d.txt"); 12 //5.写入字符串到文件中 13 FileWriter fileWriter=new FileWriter(file); 14 //6.强化写入多行字符串 15 BufferedWriter bufferedWriter=new BufferedWriter(fileWriter); 16 17 18 String string=bufferedReader.readLine(); 19 bufferedWriter.write(string); 20 21 22 bufferedWriter.flush(); 23 24 bufferedReader.close(); 25 bufferedWriter.close(); 26 inputStreamReader.close(); 27 fileWriter.close(); 28 29 30 31 }
标准输出流:System.out 返回类型为printStream字节输出流(打印流)
从文件中读取多行字符到控制台中:
1 public static void main(String[] args) throws IOException { 2 File file=new File("d:\\sxt2019\\d.txt"); 3 4 FileReader fileReader=new FileReader(file); 5 BufferedReader bufferedReader=new BufferedReader(fileReader); 6 7 PrintStream ps =System.out; 8 9 String line; 10 while((line=bufferedReader.readLine())!=null){ 11 ps.println(line); 12 } 13 }
通过Scanner扫描文件、字节流等
1 public static void main(String[] args) throws FileNotFoundException { 2 3 File file=new File("d:\\sxt2019\\e.txt"); 4 5 FileInputStream fileInputStream=new FileInputStream(file); 6 7 Scanner scanner =new Scanner(fileInputStream, "UTF-8"); 8 9 String line; 10 while(scanner.hasNextLine()){ 11 line=scanner.nextLine(); 12 System.out.println(line); 13 } 14 }