/** * 二進(jìn)制讀寫文件 */ import java.io.BufferedInputStream; import java.io.BufferedOutputStream; import java.io.DataInputStream; import java.io.DataOutputStream; import java.io.FileInputStream; import java.io.FileOutputStream; public class MainClass { /** * java.io包中的OutputStream及其子類專門用于寫二進(jìn)制數(shù)據(jù)。 * FileOutputStream是其子類,可用于將二進(jìn)制數(shù)據(jù)寫入文件。 * DataOutputStream是OutputStream的另一個(gè)子類,它可以 * 連接到一個(gè)FileOutputStream上,便于寫各種基本數(shù)據(jù)類型的數(shù)據(jù)。 */ public void writeMethod1() { String fileName="c:/kuka1.dat"; int value0=255; int value1=0; int value2=-1; try { //將DataOutputStream與FileOutputStream連接可輸出不同類型的數(shù)據(jù) //FileOutputStream類的構(gòu)造函數(shù)負(fù)責(zé)打開文件kuka.dat,如果文件不存在, //則創(chuàng)建一個(gè)新的文件,如果文件已存在則用新創(chuàng)建的文件代替。然后FileOutputStream //類的對象與一個(gè)DataOutputStream對象連接,DataOutputStream類具有寫 //各種數(shù)據(jù)類型的方法。 DataOutputStream out=new DataOutputStream(new FileOutputStream(fileName)); out.writeInt(value0); out.writeInt(value1); out.writeInt(value2); out.close(); } catch (Exception e) { e.printStackTrace(); } } //對于大量數(shù)據(jù)的寫入,使用緩沖流BufferedOutputStream類可以提高效率 public void writeMethod2() { String fileName="c:/kuka2.txt"; try { DataOutputStream out=new DataOutputStream( new BufferedOutputStream( new FileOutputStream(fileName))); out.writeInt(10); System.out.println(out.size()+" bytes have been written."); out.writeDouble(31.2); System.out.println(out.size()+" bytes have been written."); out.writeBytes("JAVA"); System.out.println(out.size()+" bytes have been written."); out.close(); } catch (Exception e) { e.printStackTrace(); } } /** * 對二進(jìn)制文件比較常見的類有FileInputStream,DataInputStream * BufferedInputStream等。類似于DataOutputStream,DataInputStream * 也提供了很多方法用于讀入布爾型、字節(jié)、字符、整形、長整形、短整形、 * 單精度、雙精度等數(shù)據(jù)。 */ public void readMethod1() { String fileName="c:/kuka1.dat"; int sum=0; try { DataInputStream in=new DataInputStream( new BufferedInputStream( new FileInputStream(fileName))); sum+=in.readInt(); sum+=in.readInt(); sum+=in.readInt(); System.out.println("The sum is:"+sum); in.close(); } catch (Exception e) { e.printStackTrace(); } } public void readMethod2() { try { FileInputStream stream=new FileInputStream("c:/kuka.dat"); int c; while((c=stream.read())!=-1) { System.out.println(c); } } catch (Exception e) { e.printStackTrace(); } } } |
|