二进制文件读写,JAVA二进制文件读写

转自:http://zoodragon.javaeye.com/blog/509237
  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. public class MainClass
  11. {
  12. /**
  13. * java.io包中的OutputStream及其子类专门用于写二进制数据。
  14. * FileOutputStream是其子类,可用于将二进制数据写入文件。
  15. * DataOutputStream是OutputStream的另一个子类,它可以
  16. * 连接到一个FileOutputStream上,便于写各种基本数据类型的数据。
  17. */
  18. public void 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. public void 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. public void 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. public void 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. }
Tags:  c二进制文件读写 二进制文件的读写 二进制文件读写

延伸阅读

最新评论

发表评论