转载网址:http://www.cnblogs.com/lovebread/archive/2009/11/23/1609122.html

1、按字节读取文件内容

2、按字符读取文件内容

3、按行读取文件内容

4、随机读取文件内容

  1. public class ReadFromFile {
  2. /**
  3. * 以字节为单位读取文件,常用于读二进制文件,如图片、声音、影像等文件。
  4. */
  5. public static void readFileByBytes(String fileName) {
  6. File file = new File(fileName);
  7. InputStream in = null;
  8. try {
  9. System.out.println("以字节为单位读取文件内容,一次读一个字节:");
  10. // 一次读一个字节
  11. in = new FileInputStream(file);
  12. int tempbyte;
  13. while ((tempbyte = in.read()) != -) {
  14. System.out.write(tempbyte);
  15. }
  16. in.close();
  17. } catch (IOException e) {
  18. e.printStackTrace();
  19. return;
  20. }
  21. try {
  22. System.out.println("以字节为单位读取文件内容,一次读多个字节:");
  23. // 一次读多个字节
  24. byte[] tempbytes = new byte[];
  25. int byteread = ;
  26. in = new FileInputStream(fileName);
  27. ReadFromFile.showAvailableBytes(in);
  28. // 读入多个字节到字节数组中,byteread为一次读入的字节数
  29. while ((byteread = in.read(tempbytes)) != -) {
  30. System.out.write(tempbytes, , byteread);
  31. }
  32. } catch (Exception e1) {
  33. e1.printStackTrace();
  34. } finally {
  35. if (in != null) {
  36. try {
  37. in.close();
  38. } catch (IOException e1) {
  39. }
  40. }
  41. }
  42. }
  43.  
  44. /**
  45. * 以字符为单位读取文件,常用于读文本,数字等类型的文件
  46. */
  47. public static void readFileByChars(String fileName) {
  48. File file = new File(fileName);
  49. Reader reader = null;
  50. try {
  51. System.out.println("以字符为单位读取文件内容,一次读一个字节:");
  52. // 一次读一个字符
  53. reader = new InputStreamReader(new FileInputStream(file));
  54. int tempchar;
  55. while ((tempchar = reader.read()) != -) {
  56. // 对于windows下,\r\n这两个字符在一起时,表示一个换行。
  57. // 但如果这两个字符分开显示时,会换两次行。
  58. // 因此,屏蔽掉\r,或者屏蔽\n。否则,将会多出很多空行。
  59. if (((char) tempchar) != '\r') {
  60. System.out.print((char) tempchar);
  61. }
  62. }
  63. reader.close();
  64. } catch (Exception e) {
  65. e.printStackTrace();
  66. }
  67. try {
  68. System.out.println("以字符为单位读取文件内容,一次读多个字节:");
  69. // 一次读多个字符
  70. char[] tempchars = new char[];
  71. int charread = ;
  72. reader = new InputStreamReader(new FileInputStream(fileName));
  73. // 读入多个字符到字符数组中,charread为一次读取字符数
  74. while ((charread = reader.read(tempchars)) != -) {
  75. // 同样屏蔽掉\r不显示
  76. if ((charread == tempchars.length)
  77. && (tempchars[tempchars.length - ] != '\r')) {
  78. System.out.print(tempchars);
  79. } else {
  80. for (int i = ; i < charread; i++) {
  81. if (tempchars[i] == '\r') {
  82. continue;
  83. } else {
  84. System.out.print(tempchars[i]);
  85. }
  86. }
  87. }
  88. }
  89.  
  90. } catch (Exception e1) {
  91. e1.printStackTrace();
  92. } finally {
  93. if (reader != null) {
  94. try {
  95. reader.close();
  96. } catch (IOException e1) {
  97. }
  98. }
  99. }
  100. }
  101.  
  102. /**
  103. * 以行为单位读取文件,常用于读面向行的格式化文件
  104. */
  105. public static void readFileByLines(String fileName) {
  106. File file = new File(fileName);
  107. BufferedReader reader = null;
  108. try {
  109. System.out.println("以行为单位读取文件内容,一次读一整行:");
  110. reader = new BufferedReader(new FileReader(file));
  111. String tempString = null;
  112. int line = ;
  113. // 一次读入一行,直到读入null为文件结束
  114. while ((tempString = reader.readLine()) != null) {
  115. // 显示行号
  116. System.out.println("line " + line + ": " + tempString);
  117. line++;
  118. }
  119. reader.close();
  120. } catch (IOException e) {
  121. e.printStackTrace();
  122. } finally {
  123. if (reader != null) {
  124. try {
  125. reader.close();
  126. } catch (IOException e1) {
  127. }
  128. }
  129. }
  130. }
  131.  
  132. /**
  133. * 随机读取文件内容
  134. */
  135. public static void readFileByRandomAccess(String fileName) {
  136. RandomAccessFile randomFile = null;
  137. try {
  138. System.out.println("随机读取一段文件内容:");
  139. // 打开一个随机访问文件流,按只读方式
  140. randomFile = new RandomAccessFile(fileName, "r");
  141. // 文件长度,字节数
  142. long fileLength = randomFile.length();
  143. // 读文件的起始位置
  144. int beginIndex = (fileLength > ) ? : ;
  145. // 将读文件的开始位置移到beginIndex位置。
  146. randomFile.seek(beginIndex);
  147. byte[] bytes = new byte[];
  148. int byteread = ;
  149. // 一次读10个字节,如果文件内容不足10个字节,则读剩下的字节。
  150. // 将一次读取的字节数赋给byteread
  151. while ((byteread = randomFile.read(bytes)) != -) {
  152. System.out.write(bytes, , byteread);
  153. }
  154. } catch (IOException e) {
  155. e.printStackTrace();
  156. } finally {
  157. if (randomFile != null) {
  158. try {
  159. randomFile.close();
  160. } catch (IOException e1) {
  161. }
  162. }
  163. }
  164. }
  165.  
  166. /**
  167. * 显示输入流中还剩的字节数
  168. */
  169. private static void showAvailableBytes(InputStream in) {
  170. try {
  171. System.out.println("当前字节输入流中的字节数为:" + in.available());
  172. } catch (IOException e) {
  173. e.printStackTrace();
  174. }
  175. }
  176.  
  177. public static void main(String[] args) {
  178. String fileName = "C:/temp/newTemp.txt";
  179. ReadFromFile.readFileByBytes(fileName);
  180. ReadFromFile.readFileByChars(fileName);
  181. ReadFromFile.readFileByLines(fileName);
  182. ReadFromFile.readFileByRandomAccess(fileName);
  183. }
  184. }

5、将内容追加到文件尾部

  1. public class AppendToFile {
  2. /**
  3. * A方法追加文件:使用RandomAccessFile
  4. */
  5. public static void appendMethodA(String fileName, String content) {
  6. try {
  7. // 打开一个随机访问文件流,按读写方式
  8. RandomAccessFile randomFile = new RandomAccessFile(fileName, "rw");
  9. // 文件长度,字节数
  10. long fileLength = randomFile.length();
  11. //将写文件指针移到文件尾。
  12. randomFile.seek(fileLength);
  13. randomFile.writeBytes(content);
  14. randomFile.close();
  15. } catch (IOException e) {
  16. e.printStackTrace();
  17. }
  18. }
  19.  
  20. /**
  21. * B方法追加文件:使用FileWriter
  22. */
  23. public static void appendMethodB(String fileName, String content) {
  24. try {
  25. //打开一个写文件器,构造函数中的第二个参数true表示以追加形式写文件
  26. FileWriter writer = new FileWriter(fileName, true);
  27. writer.write(content);
  28. writer.close();
  29. } catch (IOException e) {
  30. e.printStackTrace();
  31. }
  32. }
  33.  
  34. public static void main(String[] args) {
  35. String fileName = "C:/temp/newTemp.txt";
  36. String content = "new append!";
  37. //按方法A追加文件
  38. AppendToFile.appendMethodA(fileName, content);
  39. AppendToFile.appendMethodA(fileName, "append end. \n");
  40. //显示文件内容
  41. ReadFromFile.readFileByLines(fileName);
  42. //按方法B追加文件
  43. AppendToFile.appendMethodB(fileName, content);
  44. AppendToFile.appendMethodB(fileName, "append end. \n");
  45. //显示文件内容
  46. ReadFromFile.readFileByLines(fileName);
  47. }
  48. }

转载:[Java]读取文件方法大全的更多相关文章

  1. [Java]读取文件方法大全(转)

    [Java]读取文件方法大全   1.按字节读取文件内容2.按字符读取文件内容3.按行读取文件内容 4.随机读取文件内容 public class ReadFromFile {     /**     ...

  2. [Java]读取文件方法大全(转载)

    1.按字节读取文件内容2.按字符读取文件内容3.按行读取文件内容4.随机读取文件内容 public class ReadFromFile { /** * 以字节为单位读取文件,常用于读二进制文件,如图 ...

  3. 【转】Java读取文件方法大全

    本文转自:http://www.cnblogs.com/lovebread/archive/2009/11/23/1609122.html#undefined 目录: 按字节读取文件内容 按字符读取文 ...

  4. [Java]读取文件方法大全

    1.按字节读取文件内容2.按字符读取文件内容3.按行读取文件内容 4.随机读取文件内容 , byteread);             }         } catch (IOException  ...

  5. Java读取文件方法大全

    1.按字节读取文件内容2.按字符读取文件内容3.按行读取文件内容 4.随机读取文件内容 public class ReadFromFile {    /**     * 以字节为单位读取文件,常用于读 ...

  6. java基础之读取文件方法大全

    1.按字节读取文件内容2.按字符读取文件内容3.按行读取文件内容 4.随机读取文件内容 public class ReadFromFile { /** * 以字节为单位读取文件,常用于读二进制文件,如 ...

  7. Java读取文件方法和给文件追加内容

    本文转载自:http://www.cnblogs.com/lovebread/archive/2009/11/23/1609122.html 1.按字节读取文件内容2.按字符读取文件内容3.按行读取文 ...

  8. java读取文件方法总结

    由于最近在做一个关于从手机本地读取格式化的txt文件中的内容,并且把内容放在listview中显示.这样问题来了,就是如何能够遍历已经获取到特定的map中就是一个问题,在网上找了一些资料,找到了一个很 ...

  9. 转载--JAVA读取文件最佳实践

    1.  前言 Java应用中很常见的一个问题,如何读取jar/war包内和所在路径的配置文件,不同的人根据不同的实践总结出了不同的方案,但其他人应用却会因为环境等的差异发现各种问题,本文则从原理上解释 ...

随机推荐

  1. C++学习笔记1——const

    Const 限定符 1. 等价 //const对象必须初始化//C++中const修饰的变量不能改变//C中const修饰的变量可以通过指针修改 2. ; const int j = i;//变量给常 ...

  2. Hive笔记--配置以及遇到的问题

    ubuntu安装mysql  http://www.2cto.com/database/201401/273423.html Hive安装: http://www.aboutyun.com/forum ...

  3. 对比iOS网络组件:AFNetworking VS ASIHTTPRequest

    对比iOS网络组件:AFNetworking VS ASIHTTPRequest 作者 高嘉峻 发布于 2013年2月28日 | 7 讨论 分享到:微博微信FacebookTwitter有道云笔记邮件 ...

  4. Update主循环、状态机的实现

    从写一段程序,到写一个app,写一个游戏,到底其中有什么不同呢?一段程序的执行时间很短,一个应用的执行时间很长,仅此而已. 游戏中存在一个帧的概念.   这个概念大家都知道,类比的话,它就是电影胶卷的 ...

  5. akka简单示例-2

    手动敲了一遍计算pi的示例:http://www.gtan.com/akka_doc/intro/getting-started-first-scala.html 有个笔误,花了半个小时定位. [To ...

  6. 读取和导出下载 excel 2003,2007 资料

    protected void Page_Load(object sender, EventArgs e) { //直接在bin add referece search Microsoft.Office ...

  7. 在同一上机器上建立两个SVN服务

    最快的三步: 1,SVNADMIN CREATE NAME 2, 改写CONF目录下的相关三个文件. 3,重写一个SVN的启动脚本,指定这个SVN不同的目录及端口号. [general] ### Th ...

  8. 对libssh的golang 封装 ssh2go

    ssh2go 是对libssh的go语言绑定.libssh作为ssh的实现库,支持SSHv2和SSHv1的客户.服务端实现,通过libssh你可以远程执行程序.拷贝文件等等. ssh2go不像其他go ...

  9. Jquery 对象集合的迭代扩展forEach

    if (jQuery && !jQuery.fn.forEach) { $(function () { (function ($) { $.fn.extend({ forEach: f ...

  10. cf581A Vasya the Hipster

    One day Vasya the Hipster decided to count how many socks he had. It turned out that he had a red so ...