Java读写文件方法总结

Java的读写文件方法在工作中相信有很多的用处的,本人在之前包括现在都在使用Java的读写文件方法来处理数据方面的输入输出,确实很方便。奈何我的记性实在是叫人着急,很多时候既然都会想不起来怎么写了,不过我的Java代码量也实在是少的可怜,所以应该多多练习。这里做一个总结,集中在一起方面今后查看。

Java读文件

  1. package 天才白痴梦;
  2.  
  3. import java.io.BufferedReader;
  4. import java.io.File;
  5. import java.io.FileInputStream;
  6. import java.io.FileReader;
  7. import java.io.IOException;
  8. import java.io.InputStream;
  9. import java.io.InputStreamReader;
  10. import java.io.RandomAccessFile;
  11. import java.io.Reader;
  12.  
  13. public class JavaIO {
  14.  
  15. /**
  16. * 采用的是操作系统底层默认的编码方式,GBK等,非UTF8
  17. * */
  18.  
  19. /**
  20. * 以字节为单位读取文件内容,常用于读取二进制文件,比如图片、影像、声音等文件
  21. * */
  22. public static void readFileByBytes(String filename) {
  23. File file=new File(filename);
  24. FileInputStream in=null;
  25. try {
  26. System.out.println("以字节为单位读取文件,一次读一个字节: ");
  27. in=new FileInputStream(file);
  28. int temp=0;
  29. while ((temp=in.read()) != -1) {
  30. System.out.println(temp);
  31. }
  32. in.close();
  33. } catch (IOException e) {
  34. e.printStackTrace();
  35. return ;
  36. }
  37. try {
  38. System.out.println("以字节为单位读取文件,一次读多个字节: ");
  39. byte[] temp=new byte[100];
  40. int byteread=0;
  41. in=new FileInputStream(file);
  42. JavaIO.showAvailableBytes(in);
  43. while ((byteread=in.read(temp)) != -1) {
  44. System.out.write(temp,0,byteread);
  45. }
  46. } catch (Exception e1) {
  47. e1.printStackTrace();
  48. } finally {
  49. if (in != null) {
  50. try {
  51. in.close();
  52. } catch (IOException e1) {
  53.  
  54. }
  55. }
  56. }
  57. }
  58. /**
  59. * 以字符为单位读取文件,常用于读文本,数字等类型的文件
  60. * */
  61. public static void readFileByChar(String filename) {
  62. File file=new File(filename);
  63. Reader reader=null;
  64. try {
  65. System.out.println("以字符为单位读取文件内容,一次一个字节:");
  66. //InputStreamReader类:是字节向字符转换的桥梁
  67. reader=new InputStreamReader(new FileInputStream(file));
  68. int temp;
  69. while ((temp=reader.read()) != -1) {
  70. if (((char)temp) != '\r') {
  71. System.out.println((char)temp);
  72. }
  73. }
  74. reader.close();
  75. } catch (Exception e) {
  76. e.printStackTrace();
  77. }
  78. try {
  79. System.out.println("以字符为单位读取文件内容,一次读多个字节: ");
  80. char[] temp=new char[30];
  81. int charread=0;
  82. reader=new InputStreamReader(new FileInputStream(filename));
  83. while ((charread=reader.read(temp)) != -1) {
  84. if ((charread == temp.length) && (temp[temp.length-1]!='\r')) {
  85. System.out.println(temp);
  86. } else {
  87. for (int i=0; i<charread; i++) {
  88. if (temp[i] == '\r') {
  89. break;
  90. } else {
  91. System.out.println(temp[i]);
  92. }
  93. }
  94. }
  95. }
  96. } catch (Exception e) {
  97. e.printStackTrace();
  98. } finally {
  99. if (reader != null) {
  100. try {
  101. reader.close();
  102. } catch (IOException e) {
  103.  
  104. }
  105. }
  106. }
  107. }
  108. /**
  109. * 以行为单位读取文件,常用于读面向行的格式化文件
  110. * */
  111. public static void readFileByLine(String filename) {
  112. File file=new File(filename);
  113. BufferedReader reader=null;
  114. try {
  115. System.out.println("以行为单位读取文件内容,一次读一整行: ");
  116. reader=new BufferedReader(new FileReader(file));
  117. String temp=null;
  118. int line=1;
  119. while ((temp=reader.readLine()) != null) {
  120. System.out.println("line " + line + ": " + temp);
  121. line++;
  122. }
  123. reader.close();
  124. } catch (IOException e) {
  125. e.printStackTrace();
  126. } finally {
  127. if (reader != null) {
  128. try {
  129. reader.close();
  130. } catch (IOException e) {
  131.  
  132. }
  133. }
  134. }
  135. }
  136. /**
  137. * 随机读取文件内容
  138. * */
  139. public static void readFileByRandomAccess(String filename) {
  140. RandomAccessFile randomfile=null;
  141. try {
  142. System.out.println("随机读取一段文件内容");
  143. randomfile=new RandomAccessFile(filename,"r");
  144. long fileLength=randomfile.length();
  145. int beginIndex=(fileLength > 4 ? 4 : 0);
  146. randomfile.seek(beginIndex);
  147. byte[] bytes=new byte[10];
  148. int byteread=0;
  149. while ((byteread=randomfile.read(bytes)) != -1) {
  150. System.out.write(bytes,0,byteread);
  151. }
  152. } catch (IOException e) {
  153. e.printStackTrace();
  154. } finally {
  155. if (randomfile != null) {
  156. try {
  157. randomfile.close();
  158. } catch (IOException e) {
  159.  
  160. }
  161. }
  162. }
  163. }
  164. private static void showAvailableBytes(InputStream in) {
  165. try {
  166. System.out.println("当前字节输入流中的字节数为:" + in.available());
  167. } catch (IOException e) {
  168. e.printStackTrace();
  169. }
  170. }
  171. public static void main(String[] args) {
  172. String filename="E:\\BaiYiShaoNian.txt";
  173. JavaIO.readFileByBytes(filename);
  174. JavaIO.readFileByChar(filename);
  175. JavaIO.readFileByLine(filename);
  176. JavaIO.readFileByRandomAccess(filename);
  177. }
  178. }

Java写文件

  1. package 天才白痴梦;
  2.  
  3. import java.io.BufferedWriter;
  4. import java.io.File;
  5. import java.io.FileNotFoundException;
  6. import java.io.FileOutputStream;
  7. import java.io.FileWriter;
  8. import java.io.IOException;
  9. import java.io.OutputStreamWriter;
  10.  
  11. public class JavaIO2 {
  12.  
  13. public static void main(String[] args) throws IOException {
  14. String Path="E:\\天才白痴梦\\JAVA";
  15. File file=new File("E:\\天才白痴梦\\JAVA","BaiYiShaoNian.txt");
  16. if (!file.exists()) {
  17. try {
  18. file.createNewFile();
  19. } catch (IOException e) {
  20. e.printStackTrace();
  21. }
  22. }
  23. /**
  24. * Java写入文件的三种方法
  25. * */
  26. FileOutputStream fos=null;
  27. BufferedWriter bw=null;
  28. FileWriter fw=null;
  29. int value=1000;
  30.  
  31. try {
  32. fos=new FileOutputStream(new File(Path+"fos.txt"));
  33. long begin=System.currentTimeMillis();
  34. for (int i=1; i<=value; i++) {
  35. fos.write(5);
  36. }
  37. long end=System.currentTimeMillis();
  38. System.out.println("TheCostTime of FileOutputStream is : " + (end-begin));
  39. fos.close();
  40.  
  41. bw=new BufferedWriter(new OutputStreamWriter(new FileOutputStream(new File(Path+"br.txt")),"UTF8"));
  42. begin=System.currentTimeMillis();
  43. for (int i=1; i<=value; i++) {
  44. bw.write(5);
  45. bw.newLine();
  46. }
  47. bw.close();
  48. end=System.currentTimeMillis();
  49. System.out.println("TheCostTime of BufferedWriter is : " + (end-begin));
  50.  
  51. fw=new FileWriter(Path+"fw.txt");
  52. begin=System.currentTimeMillis();
  53. for (int i=1; i<=value; i++) {
  54. fw.write(5);
  55. }
  56. fw.close();
  57. end=System.currentTimeMillis();
  58. System.out.println("TheCostTime of FileWriter is : " + (end-begin));
  59.  
  60. } catch (Exception e) {
  61. // TODO Auto-generated catch block
  62. e.printStackTrace();
  63. } finally {
  64. try {
  65. fos.close(); //FileOutputStream
  66. bw.close(); //BufferedWriter
  67. fw.close(); //FileWriter
  68. } catch (Exception e) {
  69. e.printStackTrace();
  70. }
  71. }
  72.  
  73. }
  74. }

Java读写文件方法总结的更多相关文章

  1. java读写文件大全

     java读写文件大全 最初java是不支持对文本文件的处理的,为了弥补这个缺憾而引入了Reader和Writer两个类,这两个类都是抽象类,Writer中 write(char[] ch,int o ...

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

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

  3. Java读写文件的几种方式

    自工作以后好久没有整理Java的基础知识了.趁有时间,整理一下Java文件操作的几种方式.无论哪种编程语言,文件读写操作时避免不了的一件事情,Java也不例外.Java读写文件一般是通过字节.字符和行 ...

  4. [Python]读写文件方法

    http://www.cnblogs.com/lovebread/archive/2009/12/24/1631108.html [Python]读写文件方法 http://www.cnblogs.c ...

  5. 【java】java 读写文件

    场景:JDK8  将上传的文件,保存到服务器 Java读写文件操作: MultipartFile file InputStream inputStream = file.getInputStream( ...

  6. 转:Java读写文件各种方法及性能比较

    干Java这么久,一直在做WEB相关的项目,一些基础类差不多都已经忘记.经常想得捡起,但总是因为一些原因,不能如愿. 其实不是没有时间,只是有些时候疲于总结,今得空,下定决心将丢掉的都给捡起来. 文件 ...

  7. java读取文件方法总结

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

  8. nodeJS中读写文件方法的区别

    导言:nodejs中所有与文件相关的操作都在fs模块中,而读写操作又是我们会经常用到的操作,nodejs的fs模块针对读操作为我们提供了readFile,read, createReadStream三 ...

  9. Java读写文件常用方法

    一.字符流:读写纯文本(txt,csv等), 1 字符流写文件主要用:FileWriter,BufferedWriter,PrintWriter 1.1 测试 FileWriter 写入 privat ...

随机推荐

  1. linux中$与()的一点使用疑惑解释

    a=$(cat 1.sh)等价于a=`cat 1.sh` 而a=(cat 1.sh) 相当于定义一个a数组,内容为cat 1.sha=(`cat 1.sh`)相当于把1.sh里面的内容当成a的数组,a ...

  2. Import 元素 (MSBuild)

    Import 元素 (MSBuild)             Visual Studio 2013                 .NET Framework 4 .NET Framework 3 ...

  3. 无废话WCF入门教程一[什么是WCF]

    http://www.cnblogs.com/iamlilinfeng/archive/2012/09/25/2700049.html wcf技术交流,同学习共进步,欢迎加群:  群号:3981831 ...

  4. csharp:Nhibernate Procedure with CreateSQLQuery and GetNamedQuery

    <?xml version="1.0" encoding="utf-8"?> <hibernate-mapping assembly=&quo ...

  5. 回文串---Best Reward

    HDU   3613 Description After an uphill battle, General Li won a great victory. Now the head of state ...

  6. 泛函编程(16)-泛函状态-Functional State

    初接触泛函状态觉着很不习惯.主要是在使用State数据类型时很难理解其中的原理,特别是泛函状态变迁机制(state transition mechanism):怎么状态就起了变化,实在难以跟踪.我想这 ...

  7. 编写运行R脚本

    1.在后台运行R 1.1 创建file.R文件 1.2 在文件首行键入: #! /path/to/Rscript 1.3 在下面的行中,键入R代码 1.4 保存(记得有png(),jpeg(),... ...

  8. winform(无边框窗体与timer)

    一.无边框窗体 1.控制按钮如何制作就是放置可以点击的控件,不局限于使用按钮或是什么别的,只要放置的控件可以点击能触发点击事件就可以了 做的好看一点,就是鼠标移入(pictureBox1_MouseE ...

  9. [Xamarin.iOS] Visual Studio中Xamarin.iOS项目,无法加入PCL项目参考、NuGet组件参考

    [Xamarin.iOS] Visual Studio中Xamarin.iOS项目,无法加入PCL项目参考.NuGet组件参考 解决方案 目前Visual Studio中最新版本的Xamarin.iO ...

  10. js用8421码实现10进制转2进制

    今天早上突然心血来潮决定用 ''和js来撸一个进制转换.(纯属心血来潮,有兴趣的可以看看.) 我们知道,通过8421码.可以快速的得到一个10进制的2进制.如下图: 如上图所示:我们将10进制的 '1 ...