Java讀寫二進制文件操作

jopen 10年前發布 | 49K 次閱讀 Java Java開發

/**

  • 二進制讀寫文件 */ 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及其子類專門用于寫二進制數據。
 * FileOutputStream是其子類,可用于將二進制數據寫入文件。
 * DataOutputStream是OutputStream的另一個子類,它可以
 * 連接到一個FileOutputStream上,便于寫各種基本數據類型的數據。
 */
public void writeMethod1()
{
    String fileName="c:/kuka1.dat";
    int value0=255;
    int value1=0;
    int value2=-1;
    try
    {
        //將DataOutputStream與FileOutputStream連接可輸出不同類型的數據
        //FileOutputStream類的構造函數負責打開文件kuka.dat,如果文件不存在,
        //則創建一個新的文件,如果文件已存在則用新創建的文件代替。然后FileOutputStream
        //類的對象與一個DataOutputStream對象連接,DataOutputStream類具有寫
        //各種數據類型的方法。
        DataOutputStream out=new DataOutputStream(new FileOutputStream(fileName));
        out.writeInt(value0);
        out.writeInt(value1);
        out.writeInt(value2);
        out.close();
    } catch (Exception e)
    {
        e.printStackTrace();
    }
}
//對于大量數據的寫入,使用緩沖流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();
    }
}
/**
 * 對二進制文件比較常見的類有FileInputStream,DataInputStream
 * BufferedInputStream等。類似于DataOutputStream,DataInputStream
 * 也提供了很多方法用于讀入布爾型、字節、字符、整形、長整形、短整形、
 * 單精度、雙精度等數據。
 */
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();
    }
}

}</pre>

 本文由用戶 jopen 自行上傳分享,僅供網友學習交流。所有權歸原作者,若您的權利被侵害,請聯系管理員。
 轉載本站原創文章,請注明出處,并保留原始鏈接、圖片水印。
 本站是一個以用戶分享為主的開源技術平臺,歡迎各類分享!