在java程序中,對于數據的輸入/輸出操作以”流“的方式進行的。
流是內存中一組有序數據序列
Java將數據從源讀入到內存當中,形成了流,然后這些流可以寫到目的地。
處理流是在節點流的基礎上提供了更加強大的讀寫功能
字節流:以字節為單位來處理數據的,字節流數據為8位,一般用于對二進制的數據的讀寫,例如聲音,圖像等。
字符流:以字符為單位來處理數據的,一般用于讀寫文本文件的
1 package src; 2 3 import java.io.File; 4 import java.io.FileInputStream; 5 import java.io.FileNotFoundException; 6 import java.io.FileOutputStream; 7 import java.io.IOException; 8 9 public class Test {10 11 public static void main(String[] args) {12 //輸入外->內,讀入數據,輸出:內->外,寫數據13 14 //任務:從file1文件讀取數據到內存,a.輸出到控制臺驗證,b.輸出到file2文件中15 //1,創建一個給予file1的文件對象,,創建一個給予file2的文件對象,16 File f1=new File("c://file1.txt");17 18 File f2=new File("c://file2.txt");19 //2、 建立一個基于c://file1.txt文件的輸入通道fis,建立一個基于c://file2.txt文件的輸 出通道fos,20 try {21 FileInputStream fis=new FileInputStream(f1);22 FileOutputStream fos=new FileOutputStream(f2);23 //3、把通道fis數據讀入到內存,從內存寫到file2文件 24 int m;25 while((m=fis.read())!=-1)26 {27 fos.write(m);28 }29 30 31 32 } catch (FileNotFoundException e) {33 // TODO 自動生成的 catch 塊34 e.PRintStackTrace();35 } catch (IOException e) {36 // TODO 自動生成的 catch 塊37 e.printStackTrace();38 }39 40 41 42 }43 }
1 package src; 2 3 import java.io.File; 4 import java.io.FileNotFoundException; 5 import java.io.FileReader; 6 import java.io.FileWriter; 7 import java.io.IOException; 8 9 public class Test {10 11 public static void main(String[] args) {12 13 File f1=new File("d://file1.txt");14 15 File f2=new File("d://file2.txt");16 17 try {18 FileReader fis=new FileReader(f1);19 FileWriter fos=new FileWriter(f2);20 21 int m;22 while((m=fis.read())!=-1)23 {24 //輸出到控制臺上25 //System.out.print((char)(m));26 //輸出到file2.txt文件上27 fos.write((char)(m));28 }29 30 } catch (FileNotFoundException e) {31 // TODO 自動生成的 catch 塊32 e.printStackTrace();33 } catch (IOException e) {34 // TODO 自動生成的 catch 塊35 e.printStackTrace();36 }37 }38 }
System類是Java語言中一個功能強大、非常有用的類,它提供了
標準輸入/輸出及運行時的系統信息。從System類不能創建對象,也
就是說,System類的所有屬性和方法都是靜態的,引用時要以
System作為前綴。System.in與System.out是System類的兩個靜態
屬性,分別對應系統的標準輸入/輸出流。
其中,System.in稱為標準輸入流,用于程序輸入,通常讀取用戶
從鍵盤輸入的信息;System.out稱為標準輸出流,用于程序輸出,
通常向用戶顯示信息;System.err稱為標準錯誤流,用于向用戶顯示
出錯信息。
1 package src; 2 3 import java.io.IOException; 4 5 public class Test { 6 7 public static void main(String[] args) { 8 9 System.out.println("請輸入數據:");10 try {11 int i = System.in.read();12 System.out.println("輸入的數據為:"+(char)i);13 } catch (IOException e) {14 // TODO Auto-generated catch block15 e.printStackTrace();16 }17 }18 }
1 //讀取控制臺信息到文件中去,當輸入“q”時退出 2 package src; 3 4 import java.io.File; 5 import java.io.FileNotFoundException; 6 import java.io.FileOutputStream; 7 import java.io.IOException; 8 9 public class Test {10 11 public static void main(String[] args) {12 13 File f = new File("d://file1.txt");14 try {15 FileOutputStream fop = new FileOutputStream(f);16 while(true){17 //創建緩沖數組18 byte[] b = new byte[1024];19 System.out.println("請輸入數據:");20 //將輸入的數據放入緩沖區中,返回輸入的字符串21 int len = System.in.read(b);22 if(b[0]=='q'){23 System.out.println("退出");24 break;25 }else{26 //將數據從0偏移開始讀取len個字符27 fop.write(b, 0, len);28 }29 }30 } catch (FileNotFoundException e) {31 // TODO Auto-generated catch block32 e.printStackTrace();33 } catch (IOException e) {34 // TODO Auto-generated catch block35 e.printStackTrace();36 }37 38 }39 }
新聞熱點
疑難解答