黑马程序员;IO流之字符流
2014-08-19 00:41
281 查看
<span style="font-size:18px;">01./* 02.IO流之字符流的两个基类 03.Reader Writer 04.数据的最常见体现形式是:文件。 05.FileReader FileWriter 06.读取缓冲技术 07.BufferedReader BufferedWriter 08.*/ 09.import java.io.*; 10.class IODemo 11.{ 12. public static void main(String[] args) throws IOException//为了演示代码简洁所以抛出异常,应该try,catch 13. { 14. fileWriter(); 15. contWrite(); 16. fileRead(); 17. bufWrite(); 18. bufRead(); 19. } 20. 21.//FileWriter对象演示及IO异常的处理+++++++++++++++++++++++++++++++++++++++++++++ 22. public static void fileWriter() 23. { 24. FileWriter fw = null; 25. try 26. { 27. //创建一个FileWriter对象,该对象一被初始化就要明确被操作的文件。 28. //创建对象时会把demo.txt文件创建到指定目录,如果有同名文件存在会被覆盖。 29. fw = new FileWriter("demo.txt"); 30. //调用write方法,将字符串写入到流中。 31. fw.write("abvadf"); 32. //刷新流对象中的缓冲数据,将数据刷到目的文件中。 33. fw.flush(); 34. //关闭流资源,但关闭前会调用flush刷新一次。flush刷新后流可以继续使用。 35. //fw.close(); 36. } 37. catch (IOException e) 38. { 39. throw new RuntimeException("读写失败"); 40. } 41. finally 42. { 43. try 44. { 45. //一定要对fw进行非空判断,如果为空就无法调用close方法。 46. if(fw!=null) 47. fw.close(); 48. } 49. catch (IOException e) 50. { 51. throw new RuntimeException("关闭失败"); 52. } 53. } 54. } 55. 56.//FileWriter对已有文件的数据续写演示,这里抛出异常是为了演示代码简洁,实际应该向上面的代码做try,catch处理++++++++++++++++++++++++++++++++++++++++++++++ 57. public static void contWrite() throws IOException 58. { 59. //传递一个true参数,代表不覆盖已有文件,并在已有文件的末尾处续写数据 60. FileWriter fw = new FileWriter("demo.txt",true); 61. fw.write("续写"); 62. fw.write("\r\n换行演示");//windows中"\r\n"代表换行 63. fw.flush(); 64. } 65. 66.//FileReader演示两种读取方式 67. public static void fileRead()throws IOException//为了演示所有抛出异常,应该try,catch处理。 68. { 69. //创建一个文件读取流对象,和指定名称的文件相关联。 70. //要保证该文件是已经存在的,如果不存在会发生FileNotFoundException异常。 71. FileReader fr = new FileReader("demo.txt"); 72. 73.//++++++第一种读取方式:调用读取流对象的read方法。++++++++++++++++++++ 74. //read():一次读一个字符返回字符对应的int值,而且自动往下读。读到末尾没有数据时会返回-1 75. /* 76. int ch = 0; 77. while((ch=fr.read())!=-1) 78. { 79. System.out.println((char)ch); 80. } 81. */ 82. /* 83. while(true) 84. { 85. int ch = fr.read(); 86. if(ch==-1) 87. break; 88. System.out.println((char)ch); 89. } 90. */ 91. 92.//++++++第二种读取方式:read(char[])方法把读到的字符存到了字符数组里+++++++++++++++++++++++++++++++++++++++++++++++++ 93. 94. //所以要建立一个数组char[],如果定义的字符数组长度不够时就返回read读到的字符个数,当没有数据时返回-1。 95. 96. char[] buf = new char[1024];//一般定义1024的整数倍。 97. int num = 0; 98. while((num = fr.read(buf))!=-1) 99. { 100. //这里建议不用println如果数据超过1024时,会在不该换行的时候换行 101. System.out.print(new String(buf,0,num)); 102. } 103. fr.close(); 104. } 105. 106.//+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 107. /* 108. 读写缓冲区:BufferedWriter BufferedReader 109. */ 110. //++++BufferedWriter演示++++++++++++++++++++++++++++ 111. public static void bufWrite()throws IOException 112. { 113. //创建一个字符写入流对象 114. FileWriter fw = new FileWriter("buf.txt"); 115. 116. //将需要缓冲的流对象作为参数传递给缓冲区的构造函数。 117. BufferedWriter bufw = new BufferedWriter(fw); 118. bufw.write("dsafdasf"); 119. //缓冲区提供一个跨平台的换行方法newLine();只能在缓冲区对象中使用。 120. bufw.newLine(); 121. //记住,只要用到缓冲区就要记得刷新 122. bufw.flush(); 123. //其实关闭缓冲区就是关闭,使用该缓冲区的流对象。所以fw.close()可以不写。 124. bufw.close(); 125. 126. } 127. //++++BufferedReader演示++++++++++++++++++++++++++++ 128. public static void bufRead()throws IOException 129. { 130. BufferedReader bufr = new BufferedReader(new FileReader("buf.txt")); 131. //缓冲区提供了读一行的方法readLine();读到无数据时返回null 132. String line = null; 133. while((line=bufr.readLine())!=null) 134. { 135. System.out.println(line); 136. bufr.readLine(); 137. } 138. bufr.close(); 139. 140. } 141.} </span>
相关文章推荐
- 黑马程序员——Java基础---IO(一)---IO流概述、字符流、字节流、流操作规律
- 黑马程序员_基础_IO流学习笔记_文本文件读取及复制、字符流的缓冲区和装饰设计模式
- 黑马程序员_IO流二(字符缓冲区,字节缓冲区,字节字符转换流)
- 黑马程序员 java学习笔记 Day5:IO流、字符流、字节流
- 黑马程序员—字节流+字符流缓冲区(装饰设计)+转换流+IO流操作规律+异常日志+系统信息列表输出
- 黑马程序员--java 基础之IO流 字符流与装饰模式概述 --06
- 黑马程序员—java基础_IO流—字符流
- 黑马程序员_IO流之字符流
- 黑马程序员-Java I/O流(一)-IO流概述、字符流、字节流、流操作规律
- 黑马程序员------学习笔记(4)IO流中字符流操作
- 黑马程序员_IO流1_(IO流概述,字符流,字节流,FileWriter,FileReader)
- 黑马程序员----JAVASE之IO流操作【字符流】
- 黑马程序员——IO流2:字符流
- 黑马程序员---IO流(字符流缓冲区BufferedWriter、BufferedReader)
- 黑马程序员——Java基础——IO流(上)之字符流
- 黑马程序员_Java基础_IO流_字符流,带缓冲区的字符流,文本文件读写
- 黑马程序员—IO流字符写入流的缓冲区
- 黑马程序员——IO流(三)字节流、字符流、转换流
- 黑马程序员_十四 【IO流认识】【字符流】
- 黑马程序员-day18-IO流(字符流)