標籤:except ext temp nbsp int 磁碟讀寫 類型 實現 字元
在Java中如何處理文本I/O
使用Scanner類讀取文本資料,使用PrintWriter類寫文本資料
例子:
public class IO { public static void main(String [] args) throws FileNotFoundException { // PrintWriter printWriter = new PrintWriter("123.txt"); 輸出文本資料// printWriter.print("chenzquan");// printWriter.close(); Scanner input = new Scanner(new File("123.txt")); //輸入文本資料 System.out.print(input.nextLine()); }}
文本I/O需要編碼、解碼而二進位I/O不需要,所以二進位I/O比較快
二進位I/O類
InputStream類的方法
OutputStream類方法
FileInputStream和FileOutputStream
FileInputStream類和FileOutputStream類用於從/向檔案讀取/寫入位元組
FileInputStream
FileOutputStream
public class TestFileStream { public static void main(String [] args) throws FileNotFoundException, IOException { try(FileOutputStream fileOutputStream = new FileOutputStream("temp.dat"); ){ for(int i=0;i<100; i++) { fileOutputStream.write(i); } } try(FileInputStream fileInputStream = new FileInputStream("temp.dat");){ int value; while((value=fileInputStream.read()) != -1) { System.out.print(value + " "); } } }}
DataInputStream和DataOutputStresam
DataInputStream
實現DataInput介面
DataOutputStream
實現DataOutput介面
建立DataInputStream類和DataOutputStream類
例子:
例子:
public class TestDataStream { public static void main(String [] args) throws FileNotFoundException, IOException { try(DataOutputStream dataOutputStream = new DataOutputStream(new FileOutputStream("temp.dat"));){ dataOutputStream.writeUTF("John"); dataOutputStream.writeDouble(85.5); dataOutputStream.writeUTF("chenzquan"); dataOutputStream.writeDouble(100.0); } try(DataInputStream dataInputStream = new DataInputStream(new FileInputStream("temp.dat"));){ System.out.println(dataInputStream.readUTF() + " " + dataInputStream.readDouble()); System.out.println(dataInputStream.readUTF() + " " + dataInputStream.readDouble()); } }}
DataInputStream類和DataOutputStream類以同機器平台無關的方式讀寫Java基本類型值和字串,所以,一台機器寫好資料,可以在另一台讀取該檔案
BufferedInputStream類和BufferedOutputStream類
他們可以通過減少磁碟讀寫次數提高輸入和輸出的速度
使用BufferedInputStream時,磁碟上的整塊資料一次性地讀入到記憶體中的緩衝區中,然後從緩衝區將個別資料傳到程式中
使用BufferedOutputStream時,個別資料寫進緩衝區,當緩衝區滿了,緩衝區的資料一次性寫入到磁碟中
Java 二進位I/O處理