Java代码  Java读写二进制文件操作_二进制
  1. /**

  2. * 二进制读写文件

  3. */

  4. import java.io.BufferedInputStream;  

  5. import java.io.BufferedOutputStream;  

  6. import java.io.DataInputStream;  

  7. import java.io.DataOutputStream;  

  8. import java.io.FileInputStream;  

  9. import java.io.FileOutputStream;  

  10. publicclass MainClass  

  11. {  

  12. /**

  13.     * java.io包中的OutputStream及其子类专门用于写二进制数据。

  14.     * FileOutputStream是其子类,可用于将二进制数据写入文件。

  15.     * DataOutputStream是OutputStream的另一个子类,它可以

  16.     * 连接到一个FileOutputStream上,便于写各种基本数据类型的数据。

  17.     */

  18. publicvoid writeMethod1()  

  19.    {  

  20.        String fileName="c:/kuka1.dat";  

  21. int value0=255;  

  22. int value1=0;  

  23. int value2=-1;  

  24. try

  25.        {  

  26. //将DataOutputStream与FileOutputStream连接可输出不同类型的数据

  27. //FileOutputStream类的构造函数负责打开文件kuka.dat,如果文件不存在,

  28. //则创建一个新的文件,如果文件已存在则用新创建的文件代替。然后FileOutputStream

  29. //类的对象与一个DataOutputStream对象连接,DataOutputStream类具有写

  30. //各种数据类型的方法。

  31.            DataOutputStream out=new DataOutputStream(new FileOutputStream(fileName));  

  32.            out.writeInt(value0);  

  33.            out.writeInt(value1);  

  34.            out.writeInt(value2);  

  35.            out.close();  

  36.        } catch (Exception e)  

  37.        {  

  38.            e.printStackTrace();  

  39.        }  

  40.    }  

  41. //对于大量数据的写入,使用缓冲流BufferedOutputStream类可以提高效率

  42. publicvoid writeMethod2()  

  43.    {  

  44.        String fileName="c:/kuka2.txt";  

  45. try

  46.        {  

  47.            DataOutputStream out=new DataOutputStream(  

  48. new BufferedOutputStream(  

  49. new FileOutputStream(fileName)));  

  50.            out.writeInt(10);  

  51.            System.out.println(out.size()+" bytes have been written.");  

  52.            out.writeDouble(31.2);  

  53.            System.out.println(out.size()+" bytes have been written.");  

  54.            out.writeBytes("JAVA");  

  55.            System.out.println(out.size()+" bytes have been written.");  

  56.            out.close();  

  57.        } catch (Exception e)  

  58.        {  

  59.            e.printStackTrace();  

  60.        }  

  61.    }  

  62. /**

  63.     * 对二进制文件比较常见的类有FileInputStream,DataInputStream

  64.     * BufferedInputStream等。类似于DataOutputStream,DataInputStream

  65.     * 也提供了很多方法用于读入布尔型、字节、字符、×××、长×××、短×××、

  66.     * 单精度、双精度等数据。

  67.     */

  68. publicvoid readMethod1()  

  69.    {  

  70.        String fileName="c:/kuka1.dat";  

  71. int sum=0;  

  72. try

  73.        {  

  74.            DataInputStream in=new DataInputStream(  

  75. new BufferedInputStream(  

  76. new FileInputStream(fileName)));  

  77.            sum+=in.readInt();  

  78.            sum+=in.readInt();  

  79.            sum+=in.readInt();  

  80.            System.out.println("The sum is:"+sum);  

  81.            in.close();  

  82.        } catch (Exception e)  

  83.        {  

  84.            e.printStackTrace();  

  85.        }  

  86.    }  

  87. publicvoid readMethod2()  

  88.    {  

  89. try

  90.        {  

  91.            FileInputStream stream=new FileInputStream("c:/kuka.dat");  

  92. int c;  

  93. while((c=stream.read())!=-1)  

  94.            {  

  95.                System.out.println(c);  

  96.            }  

  97.        } catch (Exception e)  

  98.        {  

  99.            e.printStackTrace();  

  100.        }  

  101.    }  

  102. }