源數據源是標准輸入設備(鍵盤、鼠標、觸摸屏)等輸入設備。在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 }