首页 java读取文件方法大全

java读取文件方法大全

举报
开通vip

java读取文件方法大全java读取文件方法大全 \ 一、多种方式读文件内容。 1、按字节读取文件内容 2、按字符读取文件内容 3、按行读取文件内容 4、随机读取文件内容 Java代码 1.import java.io.BufferedReader; 2.import java.io.File; 3.import java.io.FileInputStream; 4.import java.io.FileReader; 5.import java.io.IOException; 6.import java.io.In...

java读取文件方法大全
java读取文件 方法 快递客服问题件处理详细方法山木方法pdf计算方法pdf华与华方法下载八字理论方法下载 大全 \ 一、多种方式读文件内容。 1、按字节读取文件内容 2、按字符读取文件内容 3、按行读取文件内容 4、随机读取文件内容 Java代码 1.import java.io.BufferedReader; 2.import java.io.File; 3.import java.io.FileInputStream; 4.import java.io.FileReader; 5.import java.io.IOException; 6.import java.io.InputStream; 7.import java.io.InputStreamReader; 8.import java.io.RandomAccessFile; 9.import java.io.Reader; 10. 11.public class ReadFromFile { 12. /** 13. * 以字节为单位读取文件,常用于读二进制文件,如图片、声音、影像等文件。 14. * 15. * @param fileName 16. * 文件的名 17. */ 18. public static void readFileByBytes(String fileName) { 19. File file = new File(fileName); 20. InputStream in = null; 21. try { 22. System.out.println("以字节为单位读取文件内容,一次读一个字节:"); 23. // 一次读一个字节 24. in = new FileInputStream(file); 25. int tempbyte; 26. while ((tempbyte = in.read()) != -1) { 27. System.out.write(tempbyte); 28. } 29. in.close(); 30. } catch (IOException e) { 31. e.printStackTrace(); 32. return; 33. } 34. try { 35. System.out.println("以字节为单位读取文件内容,一次读多个字节:"); 36. // 一次读多个字节 37. byte[] tempbytes = new byte[100]; 38. int byteread = 0; 39. in = new FileInputStream(fileName); 40. ReadFromFile.showAvailableBytes(in); 41. // 读入多个字节到字节数组中,byteread为一次读入的字节数 42. while ((byteread = in.read(tempbytes)) != -1) { 43. System.out.write(tempbytes, 0, byteread); 44. } 45. } catch (Exception e1) { 46. e1.printStackTrace(); 47. } finally { 48. if (in != null) { 49. try { 50. in.close(); 51. } catch (IOException e1) { 52. } 53. } 54. } 55. } 56. 57. /** 58. * 以字符为单位读取文件,常用于读文本,数字等类型的文件 59. * 60. * @param fileName 61. * 文件名 62. */ 63. public static void readFileByChars(String fileName) { 64. File file = new File(fileName); 65. Reader reader = null; 66. try { 67. System.out.println("以字符为单位读取文件内容,一次读一个字节:"); 68. // 一次读一个字符 69. reader = new InputStreamReader(new FileInputStream(file)); 70. int tempchar; 71. while ((tempchar = reader.read()) != -1) { 72. // 对于windows下,\r\n这两个字符在一起时,表示一个换行。 73. // 但如果这两个字符分开显示时,会换两次行。 74. // 因此,屏蔽掉\r,或者屏蔽\n。否则,将会多出很多空行。 75. if (((char) tempchar) != '\r') { 76. System.out.print((char) tempchar); 77. } 78. } 79. reader.close(); 80. } catch (Exception e) { 81. e.printStackTrace(); 82. } 83. try { 84. System.out.println("以字符为单位读取文件内容,一次读多个字节:"); 85. // 一次读多个字符 86. char[] tempchars = new char[30]; 87. int charread = 0; 88. reader = new InputStreamReader(new FileInputStream(fileName)); 89. // 读入多个字符到字符数组中,charread为一次读取字符数 90. while ((charread = reader.read(tempchars)) != -1) { 91. // 同样屏蔽掉\r不显示 92. if ((charread == tempchars.length) 93. && (tempchars[tempchars.length - 1] != '\r')) { 94. System.out.print(tempchars); 95. } else { 96. for (int i = 0; i < charread; i++) { 97. if (tempchars[i] == '\r') { 98. continue; 99. } else { 100. System.out.print(tempchars[i]); 101. } 102. } 103. } 104. } 105. 106. } catch (Exception e1) { 107. e1.printStackTrace(); 108. } finally { 109. if (reader != null) { 110. try { 111. reader.close(); 112. } catch (IOException e1) { 113. } 114. } 115. } 116. } 117. 118. /** 119. * 以行为单位读取文件,常用于读面向行的格式化文件 120. * 121. * @param fileName 122. * 文件名 123. */ 124. public static void readFileByLines(String fileName) { 125. File file = new File(fileName); 126. BufferedReader reader = null; 127. try { 128. System.out.println("以行为单位读取文件内容,一次读一整行:"); 129. reader = new BufferedReader(new FileReader(file)); 130. String tempString = null; 131. int line = 1; 132. // 一次读入一行,直到读入null为文件结束 133. while ((tempString = reader.readLine()) != null) { 134. // 显示行号 135. System.out.println("line " + line + ": " + tempString); 136. line++; 137. } 138. reader.close(); 139. } catch (IOException e) { 140. e.printStackTrace(); 141. } finally { 142. if (reader != null) { 143. try { 144. reader.close(); 145. } catch (IOException e1) { 146. } 147. } 148. } 149. } 150. 151. /** 152. * 随机读取文件内容 153. * 154. * @param fileName 155. * 文件名 156. */ 157. public static void readFileByRandomAccess(String fileName) { 158. RandomAccessFile randomFile = null; 159. try { 160. System.out.println("随机读取一段文件内容:"); 161. // 打开一个随机访问文件流,按只读方式 162. randomFile = new RandomAccessFile(fileName, "r"); 163. // 文件长度,字节数 164. long fileLength = randomFile.length(); 165. // 读文件的起始位置 166. int beginIndex = (fileLength > 4) ? 4 : 0; 167. // 将读文件的开始位置移到beginIndex位置。 168. randomFile.seek(beginIndex); 169. byte[] bytes = new byte[10]; 170. int byteread = 0; 171. // 一次读10个字节,如果文件内容不足10个字节,则读剩下的字节。 172. // 将一次读取的字节数赋给byteread 173. while ((byteread = randomFile.read(bytes)) != -1) { 174. System.out.write(bytes, 0, byteread); 175. } 176. } catch (IOException e) { 177. e.printStackTrace(); 178. } finally { 179. if (randomFile != null) { 180. try { 181. randomFile.close(); 182. } catch (IOException e1) { 183. } 184. } 185. } 186. } 187. 188. /** 189. * 显示输入流中还剩的字节数 190. * 191. * @param in 192. */ 193. private static void showAvailableBytes(InputStream in) { 194. try { 195. System.out.println("当前字节输入流中的字节数为:" + in.available()); 196. } catch (IOException e) { 197. e.printStackTrace(); 198. } 199. } 200. 201. public static void main(String[] args) { 202. String fileName = "C:/temp/newTemp.txt"; 203. ReadFromFile.readFileByBytes(fileName); 204. ReadFromFile.readFileByChars(fileName); 205. ReadFromFile.readFileByLines(fileName); 206. ReadFromFile.readFileByRandomAccess(fileName); 207. } 208.} import java.io.BufferedReader; import java.io.File; import java.io.FileInputStream; import java.io.FileReader; import java.io.IOException; import java.io.InputStream; import java.io.InputStreamReader; import java.io.RandomAccessFile; import java.io.Reader; public class ReadFromFile { /** * 以字节为单位读取文件,常用于读二进制文件,如图片、声音、影像等文件。 * * @param fileName * 文件的名 */ public static void readFileByBytes(String fileName) { File file = new File(fileName); InputStream in = null; try { System.out.println("以字节为单位读取文件内容,一次读一个字节:"); // 一次读一个字节 in = new FileInputStream(file); int tempbyte; while ((tempbyte = in.read()) != -1) { System.out.write(tempbyte); } in.close(); } catch (IOException e) { e.printStackTrace(); return; } try { System.out.println("以字节为单位读取文件内容,一次读多个字节:"); // 一次读多个字节 byte[] tempbytes = new byte[100]; int byteread = 0; in = new FileInputStream(fileName); ReadFromFile.showAvailableBytes(in); // 读入多个字节到字节数组中,byteread为一次读入的字节数 while ((byteread = in.read(tempbytes)) != -1) { System.out.write(tempbytes, 0, byteread); } } catch (Exception e1) { e1.printStackTrace(); } finally { if (in != null) { try { in.close(); } catch (IOException e1) { } } } } /** * 以字符为单位读取文件,常用于读文本,数字等类型的文件 * * @param fileName * 文件名 */ public static void readFileByChars(String fileName) { File file = new File(fileName); Reader reader = null; try { System.out.println("以字符为单位读取文件内容,一次读一个字节:"); // 一次读一个字符 reader = new InputStreamReader(new FileInputStream(file)); int tempchar; while ((tempchar = reader.read()) != -1) { // 对于windows下,\r\n这两个字符在一起时,表示一个换行。 // 但如果这两个字符分开显示时,会换两次行。 // 因此,屏蔽掉\r,或者屏蔽\n。否则,将会多出很多空行。 if (((char) tempchar) != '\r') { System.out.print((char) tempchar); } } reader.close(); } catch (Exception e) { e.printStackTrace(); } try { System.out.println("以字符为单位读取文件内容,一次读多个字节:"); // 一次读多个字符 char[] tempchars = new char[30]; int charread = 0; reader = new InputStreamReader(new FileInputStream(fileName)); // 读入多个字符到字符数组中,charread为一次读取字符数 while ((charread = reader.read(tempchars)) != -1) { // 同样屏蔽掉\r不显示 if ((charread == tempchars.length) && (tempchars[tempchars.length - 1] != '\r')) { System.out.print(tempchars); } else { for (int i = 0; i < charread; i++) { if (tempchars[i] == '\r') { continue; } else { System.out.print(tempchars[i]); } } } } } catch (Exception e1) { e1.printStackTrace(); } finally { if (reader != null) { try { reader.close(); } catch (IOException e1) { } } } } /** * 以行为单位读取文件,常用于读面向行的格式化文件 * * @param fileName * 文件名 */ public static void readFileByLines(String fileName) { File file = new File(fileName); BufferedReader reader = null; try { System.out.println("以行为单位读取文件内容,一次读一整行:"); reader = new BufferedReader(new FileReader(file)); String tempString = null; int line = 1; // 一次读入一行,直到读入null为文件结束 while ((tempString = reader.readLine()) != null) { // 显示行号 System.out.println("line " + line + ": " + tempString); line++; } reader.close(); } catch (IOException e) { e.printStackTrace(); } finally { if (reader != null) { try { reader.close(); } catch (IOException e1) { } } } } /** * 随机读取文件内容 * * @param fileName * 文件名 */ public static void readFileByRandomAccess(String fileName) { RandomAccessFile randomFile = null; try { System.out.println("随机读取一段文件内容:"); // 打开一个随机访问文件流,按只读方式 randomFile = new RandomAccessFile(fileName, "r"); // 文件长度,字节数 long fileLength = randomFile.length(); // 读文件的起始位置 int beginIndex = (fileLength > 4) ? 4 : 0; // 将读文件的开始位置移到beginIndex位置。 randomFile.seek(beginIndex); byte[] bytes = new byte[10]; int byteread = 0; // 一次读10个字节,如果文件内容不足10个字节,则读剩下的字节。 // 将一次读取的字节数赋给byteread while ((byteread = randomFile.read(bytes)) != -1) { System.out.write(bytes, 0, byteread); } } catch (IOException e) { e.printStackTrace(); } finally { if (randomFile != null) { try { randomFile.close(); } catch (IOException e1) { } } } } /** * 显示输入流中还剩的字节数 * * @param in */ private static void showAvailableBytes(InputStream in) { try { System.out.println("当前字节输入流中的字节数为:" + in.available()); } catch (IOException e) { e.printStackTrace(); } } public static void main(String[] args) { String fileName = "C:/temp/newTemp.txt"; ReadFromFile.readFileByBytes(fileName); ReadFromFile.readFileByChars(fileName); ReadFromFile.readFileByLines(fileName); ReadFromFile.readFileByRandomAccess(fileName); } } 二、将内容追加到文件尾部 Java代码 1.import java.io.FileWriter; 2.import java.io.IOException; 3.import java.io.RandomAccessFile; 4. 5./** 6. * 将内容追加到文件尾部 7. */ 8.public class AppendToFile { 9. 10. /** 11. * A方法追加文件:使用RandomAccessFile 12. * @param fileName 文件名 13. * @param content 追加的内容 14. */ 15. public static void appendMethodA(String fileName, String content) { 16. try { 17. // 打开一个随机访问文件流,按读写方式 18. RandomAccessFile randomFile = new RandomAccessFile(fileName, "rw"); 19. // 文件长度,字节数 20. long fileLength = randomFile.length(); 21. //将写文件指针移到文件尾。 22. randomFile.seek(fileLength); 23. randomFile.writeBytes(content); 24. randomFile.close(); 25. } catch (IOException e) { 26. e.printStackTrace(); 27. } 28. } 29. 30. /** 31. * B方法追加文件:使用FileWriter 32. * @param fileName 33. * @param content 34. */ 35. public static void appendMethodB(String fileName, String content) { 36. try { 37. //打开一个写文件器,构造 关于工期滞后的函关于工程严重滞后的函关于工程进度滞后的回复函关于征求同志党风廉政意见的函关于征求廉洁自律情况的复函 数中的第二个参数true表示以追加形式写文件 38. FileWriter writer = new FileWriter(fileName, true); 39. writer.write(content); 40. writer.close(); 41. } catch (IOException e) { 42. e.printStackTrace(); 43. } 44. } 45. 46. public static void main(String[] args) { 47. String fileName = "C:/temp/newTemp.txt"; 48. String content = "new append!"; 49. //按方法A追加文件 50. AppendToFile.appendMethodA(fileName, content); 51. AppendToFile.appendMethodA(fileName, "append end. \n"); 52. //显示文件内容 53. ReadFromFile.readFileByLines(fileName); 54. //按方法B追加文件 55. AppendToFile.appendMethodB(fileName, content); 56. AppendToFile.appendMethodB(fileName, "append end. \n"); 57. //显示文件内容 58. ReadFromFile.readFileByLines(fileName); 59. } 60.} java读取文件方法大全 一、多种方式读文件内容。 1、按字节读取文件内容 2、按字符读取文件内容 3、按行读取文件内容 4、随机读取文件内容 Java代码 1.import java.io.BufferedReader; 2.import java.io.File; 3.import java.io.FileInputStream; 4.import java.io.FileReader; 5.import java.io.IOException; 6.import java.io.InputStream; 7.import java.io.InputStreamReader; 8.import java.io.RandomAccessFile; 9.import java.io.Reader; 10. 11.public class ReadFromFile { 12. /** 13. * 以字节为单位读取文件,常用于读二进制文件,如图片、声音、影像等文件。 14. * 15. * @param fileName 16. * 文件的名 17. */ 18. public static void readFileByBytes(String fileName) { 19. File file = new File(fileName); 20. InputStream in = null; 21. try { 22. System.out.println("以字节为单位读取文件内容,一次读一个字节:"); 23. // 一次读一个字节 24. in = new FileInputStream(file); 25. int tempbyte; 26. while ((tempbyte = in.read()) != -1) { 27. System.out.write(tempbyte); 28. } 29. in.close(); 30. } catch (IOException e) { 31. e.printStackTrace(); 32. return; 33. } 34. try { 35. System.out.println("以字节为单位读取文件内容,一次读多个字节:"); 36. // 一次读多个字节 37. byte[] tempbytes = new byte[100]; 38. int byteread = 0; 39. in = new FileInputStream(fileName); 40. ReadFromFile.showAvailableBytes(in); 41. // 读入多个字节到字节数组中,byteread为一次读入的字节数 42. while ((byteread = in.read(tempbytes)) != -1) { 43. System.out.write(tempbytes, 0, byteread); 44. } 45. } catch (Exception e1) { 46. e1.printStackTrace(); 47. } finally { 48. if (in != null) { 49. try { 50. in.close(); 51. } catch (IOException e1) { 52. } 53. } 54. } 55. } 56. 57. /** 58. * 以字符为单位读取文件,常用于读文本,数字等类型的文件 59. * 60. * @param fileName 61. * 文件名 62. */ 63. public static void readFileByChars(String fileName) { 64. File file = new File(fileName); 65. Reader reader = null; 66. try { 67. System.out.println("以字符为单位读取文件内容,一次读一个字节:"); 68. // 一次读一个字符 69. reader = new InputStreamReader(new FileInputStream(file)); 70. int tempchar; 71. while ((tempchar = reader.read()) != -1) { 72. // 对于windows下,\r\n这两个字符在一起时,表示一个换行。 73. // 但如果这两个字符分开显示时,会换两次行。 74. // 因此,屏蔽掉\r,或者屏蔽\n。否则,将会多出很多空行。 75. if (((char) tempchar) != '\r') { 76. System.out.print((char) tempchar); 77. } 78. } 79. reader.close(); 80. } catch (Exception e) { 81. e.printStackTrace(); 82. } 83. try { 84. System.out.println("以字符为单位读取文件内容,一次读多个字节:"); 85. // 一次读多个字符 86. char[] tempchars = new char[30]; 87. int charread = 0; 88. reader = new InputStreamReader(new FileInputStream(fileName)); 89. // 读入多个字符到字符数组中,charread为一次读取字符数 90. while ((charread = reader.read(tempchars)) != -1) { 91. // 同样屏蔽掉\r不显示 92. if ((charread == tempchars.length) 93. && (tempchars[tempchars.length - 1] != '\r')) { 94. System.out.print(tempchars); 95. } else { 96. for (int i = 0; i < charread; i++) { 97. if (tempchars[i] == '\r') { 98. continue; 99. } else { 100. System.out.print(tempchars[i]); 101. } 102. } 103. } 104. } 105. 106. } catch (Exception e1) { 107. e1.printStackTrace(); 108. } finally { 109. if (reader != null) { 110. try { 111. reader.close(); 112. } catch (IOException e1) { 113. } 114. } 115. } 116. } 117. 118. /** 119. * 以行为单位读取文件,常用于读面向行的格式化文件 120. * 121. * @param fileName 122. * 文件名 123. */ 124. public static void readFileByLines(String fileName) { 125. File file = new File(fileName); 126. BufferedReader reader = null; 127. try { 128. System.out.println("以行为单位读取文件内容,一次读一整行:"); 129. reader = new BufferedReader(new FileReader(file)); 130. String tempString = null; 131. int line = 1; 132. // 一次读入一行,直到读入null为文件结束 133. while ((tempString = reader.readLine()) != null) { 134. // 显示行号 135. System.out.println("line " + line + ": " + tempString); 136. line++; 137. } 138. reader.close(); 139. } catch (IOException e) { 140. e.printStackTrace(); 141. } finally { 142. if (reader != null) { 143. try { 144. reader.close(); 145. } catch (IOException e1) { 146. } 147. } 148. } 149. } 150. 151. /** 152. * 随机读取文件内容 153. * 154. * @param fileName 155. * 文件名 156. */ 157. public static void readFileByRandomAccess(String fileName) { 158. RandomAccessFile randomFile = null; 159. try { 160. System.out.println("随机读取一段文件内容:"); 161. // 打开一个随机访问文件流,按只读方式 162. randomFile = new RandomAccessFile(fileName, "r"); 163. // 文件长度,字节数 164. long fileLength = randomFile.length(); 165. // 读文件的起始位置 166. int beginIndex = (fileLength > 4) ? 4 : 0; 167. // 将读文件的开始位置移到beginIndex位置。 168. randomFile.seek(beginIndex); 169. byte[] bytes = new byte[10]; 170. int byteread = 0; 171. // 一次读10个字节,如果文件内容不足10个字节,则读剩下的字节。 172. // 将一次读取的字节数赋给byteread 173. while ((byteread = randomFile.read(bytes)) != -1) { 174. System.out.write(bytes, 0, byteread); 175. } 176. } catch (IOException e) { 177. e.printStackTrace(); 178. } finally { 179. if (randomFile != null) { 180. try { 181. randomFile.close(); 182. } catch (IOException e1) { 183. } 184. } 185. } 186. } 187. 188. /** 189. * 显示输入流中还剩的字节数 190. * 191. * @param in 192. */ 193. private static void showAvailableBytes(InputStream in) { 194. try { 195. System.out.println("当前字节输入流中的字节数为:" + in.available()); 196. } catch (IOException e) { 197. e.printStackTrace(); 198. } 199. } 200. 201. public static void main(String[] args) { 202. String fileName = "C:/temp/newTemp.txt"; 203. ReadFromFile.readFileByBytes(fileName); 204. ReadFromFile.readFileByChars(fileName); 205. ReadFromFile.readFileByLines(fileName); 206. ReadFromFile.readFileByRandomAccess(fileName); 207. } 208.} import java.io.BufferedReader; import java.io.File; import java.io.FileInputStream; import java.io.FileReader; import java.io.IOException; import java.io.InputStream; import java.io.InputStreamReader; import java.io.RandomAccessFile; import java.io.Reader; public class ReadFromFile { /** * 以字节为单位读取文件,常用于读二进制文件,如图片、声音、影像等文件。 * * @param fileName * 文件的名 */ public static void readFileByBytes(String fileName) { File file = new File(fileName); InputStream in = null; try { System.out.println("以字节为单位读取文件内容,一次读一个字节:"); // 一次读一个字节 in = new FileInputStream(file); int tempbyte; while ((tempbyte = in.read()) != -1) { System.out.write(tempbyte); } in.close(); } catch (IOException e) { e.printStackTrace(); return; } try { System.out.println("以字节为单位读取文件内容,一次读多个字节:"); // 一次读多个字节 byte[] tempbytes = new byte[100]; int byteread = 0; in = new FileInputStream(fileName); ReadFromFile.showAvailableBytes(in); // 读入多个字节到字节数组中,byteread为一次读入的字节数 while ((byteread = in.read(tempbytes)) != -1) { System.out.write(tempbytes, 0, byteread); } } catch (Exception e1) { e1.printStackTrace(); } finally { if (in != null) { try { in.close(); } catch (IOException e1) { } } } } /** * 以字符为单位读取文件,常用于读文本,数字等类型的文件 * * @param fileName * 文件名 */ public static void readFileByChars(String fileName) { File file = new File(fileName); Reader reader = null; try { System.out.println("以字符为单位读取文件内容,一次读一个字节:"); // 一次读一个字符 reader = new InputStreamReader(new FileInputStream(file)); int tempchar; while ((tempchar = reader.read()) != -1) { // 对于windows下,\r\n这两个字符在一起时,表示一个换行。 // 但如果这两个字符分开显示时,会换两次行。 // 因此,屏蔽掉\r,或者屏蔽\n。否则,将会多出很多空行。 if (((char) tempchar) != '\r') { System.out.print((char) tempchar); } } reader.close(); } catch (Exception e) { e.printStackTrace(); } try { System.out.println("以字符为单位读取文件内容,一次读多个字节:"); // 一次读多个字符 char[] tempchars = new char[30]; int charread = 0; reader = new InputStreamReader(new FileInputStream(fileName)); // 读入多个字符到字符数组中,charread为一次读取字符数 while ((charread = reader.read(tempchars)) != -1) { // 同样屏蔽掉\r不显示 if ((charread == tempchars.length) && (tempchars[tempchars.length - 1] != '\r')) { System.out.print(tempchars); } else { for (int i = 0; i < charread; i++) { if (tempchars[i] == '\r') { continue; } else { System.out.print(tempchars[i]); } } } } } catch (Exception e1) { e1.printStackTrace(); } finally { if (reader != null) { try { reader.close(); } catch (IOException e1) { } } } } /** * 以行为单位读取文件,常用于读面向行的格式化文件 * * @param fileName * 文件名 */ public static void readFileByLines(String fileName) { File file = new File(fileName); BufferedReader reader = null; try { System.out.println("以行为单位读取文件内容,一次读一整行:"); reader = new BufferedReader(new FileReader(file)); String tempString = null; int line = 1; // 一次读入一行,直到读入null为文件结束 while ((tempString = reader.readLine()) != null) { // 显示行号 System.out.println("line " + line + ": " + tempString); line++; } reader.close(); } catch (IOException e) { e.printStackTrace(); } finally { if (reader != null) { try { reader.close(); } catch (IOException e1) { } } } } /** * 随机读取文件内容 * * @param fileName * 文件名 */ public static void readFileByRandomAccess(String fileName) { RandomAccessFile randomFile = null; try { System.out.println("随机读取一段文件内容:"); // 打开一个随机访问文件流,按只读方式 randomFile = new RandomAccessFile(fileName, "r"); // 文件长度,字节数 long fileLength = randomFile.length(); // 读文件的起始位置 int beginIndex = (fileLength > 4) ? 4 : 0; // 将读文件的开始位置移到beginIndex位置。 randomFile.seek(beginIndex); byte[] bytes = new byte[10]; int byteread = 0; // 一次读10个字节,如果文件内容不足10个字节,则读剩下的字节。 // 将一次读取的字节数赋给byteread while ((byteread = randomFile.read(bytes)) != -1) { System.out.write(bytes, 0, byteread); } } catch (IOException e) { e.printStackTrace(); } finally { if (randomFile != null) { try { randomFile.close(); } catch (IOException e1) { } } } } /** * 显示输入流中还剩的字节数 * * @param in */ private static void showAvailableBytes(InputStream in) { try { System.out.println("当前字节输入流中的字节数为:" + in.available()); } catch (IOException e) { e.printStackTrace(); } } public static void main(String[] args) { String fileName = "C:/temp/newTemp.txt"; ReadFromFile.readFileByBytes(fileName); ReadFromFile.readFileByChars(fileName); ReadFromFile.readFileByLines(fileName); ReadFromFile.readFileByRandomAccess(fileName); } } 二、将内容追加到文件尾部 Java代码 1.import java.io.FileWriter; 2.import java.io.IOException; 3.import java.io.RandomAccessFile; 4. 5./** 6. * 将内容追加到文件尾部 7. */ 8.public class AppendToFile { 9. 10. /** 11. * A方法追加文件:使用RandomAccessFile 12. * @param fileName 文件名 13. * @param content 追加的内容 14. */ 15. public static void appendMethodA(String fileName, String content) { 16. try { 17. // 打开一个随机访问文件流,按读写方式 18. RandomAccessFile randomFile = new RandomAccessFile(fileName, "rw"); 19. // 文件长度,字节数 20. long fileLength = randomFile.length(); 21. //将写文件指针移到文件尾。 22. randomFile.seek(fileLength); 23. randomFile.writeBytes(content); 24. randomFile.close(); 25. } catch (IOException e) { 26. e.printStackTrace(); 27. } 28. } 29. 30. /** 31. * B方法追加文件:使用FileWriter 32. * @param fileName 33. * @param content 34. */ 35. public static void appendMethodB(String fileName, String content) { 36. try { 37. //打开一个写文件器,构造函数中的第二个参数true表示以追加形式写文件 38. FileWriter writer = new FileWriter(fileName, true); 39. writer.write(content); 40. writer.close(); 41. } catch (IOException e) { 42. e.printStackTrace(); 43. } 44. } 45. 46. public static void main(String[] args) { 47. String fileName = "C:/temp/newTemp.txt"; 48. String content = "new append!"; 49. //按方法A追加文件 50. AppendToFile.appendMethodA(fileName, content); 51. AppendToFile.appendMethodA(fileName, "append end. \n"); 52. //显示文件内容 53. ReadFromFile.readFileByLines(fileName); 54. //按方法B追加文件 55. AppendToFile.appendMethodB(fileName, content); 56. AppendToFile.appendMethodB(fileName, "append end. \n"); 57. //显示文件内容 58. ReadFromFile.readFileByLines(fileName); 59. } 60.}
本文档为【java读取文件方法大全】,请使用软件OFFICE或WPS软件打开。作品中的文字与图均可以修改和编辑, 图片更改请在作品中右键图片并更换,文字修改请直接点击文字进行修改,也可以新增和删除文档中的内容。
该文档来自用户分享,如有侵权行为请发邮件ishare@vip.sina.com联系网站客服,我们会及时删除。
[版权声明] 本站所有资料为用户分享产生,若发现您的权利被侵害,请联系客服邮件isharekefu@iask.cn,我们尽快处理。
本作品所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用。
网站提供的党政主题相关内容(国旗、国徽、党徽..)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。
下载需要: 免费 已有0 人下载
最新资料
资料动态
专题动态
is_751406
暂无简介~
格式:doc
大小:80KB
软件:Word
页数:0
分类:
上传时间:2018-03-13
浏览量:5