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
61         } catch (Exception e) {
62             // TODO Auto-generated catch block
63             e.printStackTrace();
64         } finally {
65             try {
66                 fos.close(); //FileOutputStream
67                 bw.close(); //BufferedWriter
68                 fw.close(); //FileWriter
69             } catch (Exception e) {
70                 e.printStackTrace();
71             }
72         }
73
74     }
75 }

时间: 2024-12-20 14:09:51

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

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

[Java]读取文件方法大全 1.按字节读取文件内容2.按字符读取文件内容3.按行读取文件内容 4.随机读取文件内容 public class ReadFromFile {    /**     * 以字节为单位读取文件,常用于读二进制文件,如图片.声音.影像等文件.     */    public static void readFileByBytes(String fileName) {        File file = new File(fileName);        Input

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

本文转自:http://www.cnblogs.com/lovebread/archive/2009/11/23/1609122.html#undefined 目录: 按字节读取文件内容 按字符读取文件内容 按行读取文件内容 随机读取文件内容 将内容追加到文件尾部 public class ReadFromFile { /** * 以字节为单位读取文件,常用于读二进制文件,如图片.声音.影像等文件. */ public static void readFileByBytes(String fil

java读写文件

读文件 package tool; import java.io.BufferedReader; import java.io.BufferedWriter; import java.io.File; import java.io.FileOutputStream; import java.io.FileReader; import java.io.IOException; import java.io.OutputStreamWriter; public class ReadFile { pu

Java读写文件的几种方式

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

java读写文件(可当工具类保存。解决乱码)

//读文件 public static String ReadFile(String path) { File file = new File(path); BufferedReader reader = null; String laststr = ""; try { reader = new BufferedReader(new FileReader(file)); String tempString = null; while ((tempString = reader.read

[Python]读写文件方法

http://www.cnblogs.com/lovebread/archive/2009/12/24/1631108.html [Python]读写文件方法 http://www.cnblogs.com/xuxn/archive/2011/07/27/read-a-file-with-python.html Python按行读文件 1. 最基本的读文件方法: # File: readline-example-1.py file = open("sample.txt") while 1

【java】java 读写文件

场景:JDK8  将上传的文件,保存到服务器 Java读写文件操作: MultipartFile file InputStream inputStream = file.getInputStream(); private void saveOldFile(String uid,String fileName,InputStream inputStream){ String filePath = getFilePath() + "/" + uid +fileName; BufferedR

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

干Java这么久,一直在做WEB相关的项目,一些基础类差不多都已经忘记.经常想得捡起,但总是因为一些原因,不能如愿. 其实不是没有时间,只是有些时候疲于总结,今得空,下定决心将丢掉的都给捡起来. 文件读写是一个在项目中经常遇到的工作,有些时候是因为维护,有些时候是新功能开发.我们的任务总是很重,工作节奏很快,快到我们不能停下脚步去总结. 文件读写有以下几种常用的方法 1.字节读写(InputStream/OutputStream) 2.字符读取(FileReader/FileWriter) 3.

java读写文件,读超大文件

一直在处理爬虫,经常能遇到读写文件的操作,很多时候都是读写超大文件,记录如下: 一.读文件 import java.io.BufferedOutputStream; import java.io.BufferedReader; import java.io.File; import java.io.FileOutputStream; import java.io.FileReader; import java.io.FileWriter; import java.io.IOException;