[java] view plaincopy
01./*
02.IO流之字节流的两个基类:
03.InputStream OutputStream
04.字节流的缓冲区
05.BufferedInputStream BufferedOutputStream
06.*/
07.import java.io.*;
08.class IODemo1
09.{
10. public static void main(String[] args) throws IOException
11. {
12. //fileInput();
13. //fileOutput();
14. //计算copyPic()方法执行所用的时间
15. long start = System.currentTimeMillis();
16. copyPic();
17. long end = System.currentTimeMillis();
18. System.out.println((end-start)+"毫秒");
19. }
20.
21.
22. public static void fileInput()throws IOException
23. {
24. FileInputStream fis = new FileInputStream("fos.txt");
25. //字节流读取演示
26. byte[] buf = new byte[1024];
27. int len = 0;
28. while((len = fis.read(buf))!= -1)
29. {
30. System.out.println(new String(buf,0,len));
31. }
32. //字节流特有读取方式。定义一个刚刚好的缓冲区,所以不用循环了
33. //但是数据太大时会发生内存溢出。建议定义1024的整数倍。循环读取。
34. byte[] buf1 = new byte[fis.available()];
35. fis.read(buf1);
36. System.out.println(new String(buf1));
37. fis.close();
38. }
39.
40. //字节流输出演示
41. public static void fileOutput()throws IOException
42. {
43. FileOutputStream fos = new FileOutputStream("fos.txt");
44.
45.
46. fos.write("djfasfs".getBytes());
47.
48. fos.close();
49. }
50.
51. //字节流的缓冲区BufferedInputStream BufferedOutputStream
52. public static void copyPic()
53. {
54. BufferedInputStream bufin = null;
55. BufferedOutputStream bufout = null;
56. try
57. {
58. bufin = new BufferedInputStream(new FileInputStream("1.jpg"));
59. bufout = new BufferedOutputStream(new FileOutputStream("copy1.jpg"));
60. int by = 0;
61. while((by = bufin.read())!=-1)
62. {
63. bufout.write(by);
64. }
65.
66. }
67. catch (IOException e)
68. {
69. throw new RuntimeException("复制失败");
70. }
71. finally
72. {
73. try
74. {
75. if(bufin != null)
76. bufin.close();
77. }
78. catch (IOException e)
79. {
80. throw new RuntimeException("读取流关闭失败");
81. }
82. try
83. {
84. if(bufout != null)
85. bufout.close();
86. }
87. catch (IOException e)
88. {
89. throw new RuntimeException("输出流关闭失败");
90. }
91. }
92. }
93.}
黑马程序员:IO流之字节流
最新推荐文章于 2015-09-17 13:12:21 发布