A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区
传智教育官网黑马程序员官网
只需一步,快速开始
IT_JM
中级黑马
黑马币:1
帖子:85
精华:0
© IT_JM 中级黑马 / 2013-10-10 23:55 / 1206 人查看 / 1 人回复 / 0 人收藏 转载请遵从CC协议 禁止商业使用本文
1. /* 2. 需求: 3. 将c盘一个文本文件复制到e盘、 4. 复制的原理: 5. 其实就是将c盘下的文件数据存储到e盘的一个文件中。 6. 步骤: 7. 1、在e盘创建一个文件。用于存储c盘文件中的数据。 8. 2、定义读取流和c盘文件关联。 9. 3、通过不断的读写完成数据存储。 10. 4、关闭资源。 11. */ 12. import java.io.*; 13. 14. class ReaderWriterTest 15. { 16. publicstatic void main(String[] args) 17. { 18. //调用复制方法 19. //copy_1(); 20. copy_2(); 21. } 22. //用第一种读取方式进行复制 23. publicstatic void copy_1() 24. { 25. FileWriterfw=null; 26. FileReaderfr=null; 27. try 28. { 29. //关联读取和写入的文件 30. fw=newFileWriter("E:\\HelloWorld.java"); 31. fr=newFileReader("C:\\HelloWorld.java"); 32. for(int ch=0;(ch=fr.read())!=-1 ; ) 33. { 34. fw.write(ch);//一个字符一个字符写入 35. } 36. } 37. catch(IOException e) 38. { 39. thrownew RuntimeException("读写失败"); 40. } 41. finally 42. { 43. if(fr!=null) 44. try 45. { 46. fr.close();//对读取流和写入流分别关闭 47. } 48. catch(IOException e) 49. { 50. } 51. if(fw!=null) 52. try 53. { 54. fw.close(); 55. } 56. catch(IOException e) 57. { 58. } 59. } 60. } 61. 62. //第二种读取方式进行复制 63. publicstatic void copy_2() 64. { 65. FileWriterfw=null; 66. FileReaderfr=null; 67. try 68. { 69. //关联读取和写入的文件 70. fw=newFileWriter("E:\\HelloWorld.java"); 71. fr=newFileReader("C:\\HelloWorld.java"); 72. char[]arr=new char[1024]; 73. for(int len=0;(len=fr.read(arr))!=-1 ; ) 74. { 75. fw.write(arr,0,len);//利用数组一次存入数组中的字符 76. } 77. } 78. catch(IOException e) 79. { 80. thrownew RuntimeException("读写失败"); 81. } 82. finally 83. { 84. try 85. { 86. if(fr!=null) 87. fr.close(); 88. } 89. catch(IOException e) 90. { 91. } 92. finally 93. { 94. if(fw!=null) 95. try 96. { 97. fw.close(); 98. } 99. catch(IOException e) 100. { 101. } 102. } 103. } 104. } 105. } 复制代码分析1、作为内部内进行序列化是,他的类也要实现Serializable接口。 2、读出来的对象和写入的对象不是同一个对象(也就是进行“==”返回false),但属性的值相等(例子中的i相等)。 3、可以使用transient关键字进行标注那些字段不用序列化操作。 4、序列话操作不会调用构造函数。
查看全部评分