java读写文件方法总结
Java的读写文件方法在工作中相信有很多的用处的,本人在之前包括现在都在使用Java的读写文件方法来处理数据方面的输入输出,确实很方便。奈何我的记性实在是叫人着急,很多时候既然都会想不起来怎么写了,不过我的Java代码量也实在是少的可怜,所以应该多多练习。这里做一个总结,集中在一起方面今后查看。
Java读文件
1package天才白痴梦;23importjava.io.BufferedReader;4importjava.io.File;5importjava.io.FileInputStream;6importjava.io.FileReader;7importjava.io.IOException;8importjava.io.InputStream;9importjava.io.InputStreamReader;10importjava.io.RandomaccessFile;11importjava.io.Reader;1213publicclassJavaIO {1415/**16* 采用的是操作系统底层默认的编码方式,GBK等,非UTF817**/1819/**20* 以字节为单位读取文件内容,常用于读取二进制文件,比如图片、影像、声音等文件21**/22publicstaticvoidreadFileByBytes(String filename) {23File file=newFile(filename);24FileInputStream in=null;25try{26System.out.PRintln("以字节为单位读取文件,一次读一个字节: ");27in=newFileInputStream(file);28inttemp=0;29while((temp=in.read()) != -1) {30System.out.println(temp);31}32in.close();33}catch(IOException e) {34e.printStackTrace();35return;36}37try{38System.out.println("以字节为单位读取文件,一次读多个字节: ");39byte[] temp=newbyte[100];40intbyteread=0;41in=newFileInputStream(file);42JavaIO.showAvailableBytes(in);43while((byteread=in.read(temp)) != -1) {44System.out.write(temp,0,byteread);45}46}catch(Exception e1) {47e1.printStackTrace();48}finally{49if(in !=null) {50try{51in.close();52}catch(IOException e1) {5354}55}56}57}58/**59* 以字符为单位读取文件,常用于读文本,数字等类型的文件60**/61publicstaticvoidreadFileByChar(String filename) {62File file=newFile(filename);63Reader reader=null;64try{65System.out.println("以字符为单位读取文件内容,一次一个字节:");66//InputStreamReader类:是字节向字符转换的桥梁67reader=newInputStreamReader(newFileInputStream(file));68inttemp;69while((temp=reader.read()) != -1) {70if(((char)temp) != '\r') {71System.out.println((char)temp);72}73}74reader.close();75}catch(Exception e) {76e.printStackTrace();77}78try{79System.out.println("以字符为单位读取文件内容,一次读多个字节: ");80char[] temp=newchar[30];81intcharread=0;82reader=newInputStreamReader(newFileInputStream(filename));83while((charread=reader.read(temp)) != -1) {84if((charread == temp.length) && (temp[temp.length-1]!='\r')) {85System.out.println(temp);86}else{87for(inti=0; i<charread; i++) {88if(temp[i] == '\r') {89
break;90}else{91System.out.println(temp[i]);92}93}94}95}96}catch(Exception e) {97e.printStackTrace();98}finally{99if(reader !=null) {100try{101reader.close();102}catch(IOException e) {103104}105}106}107}108/**109* 以行为单位读取文件,常用于读面向行的格式化文件110**/111publicstaticvoidreadFileByLine(String filename) {112File file=newFile(filename);113BufferedReader reader=null;114try{115System.out.println("以行为单位读取文件内容,一次读一整行: ");116reader=newBufferedReader(newFileReader(file));117String temp=null;118intline=1;119while((temp=reader.readLine()) !=null) {120System.out.println("line " + line + ": " +temp);121line++;122}123reader.close();124}catch(IOException e) {125e.printStackTrace();126}finally{127if(reader !=null) {128try{129reader.close();130}catch(IOException e) {131132}133}134}135}136/**137* 随机读取文件内容138**/139publicstaticvoidreadFileByRandomAccess(String filename) {140RandomAccessFile randomfile=null;141try{142System.out.println("随机读取一段文件内容");143randomfile=newRandomAccessFile(filename,"r");144longfileLength=randomfile.length();145intbeginIndex=(fileLength > 4 ? 4 : 0);146randomfile.seek(beginIndex);147byte[] bytes=newbyte[10];148intbyteread=0;149while((byteread=randomfile.read(bytes)) != -1) {150System.out.write(bytes,0,byteread);151}152}catch(IOException e) {153e.printStackTrace();154}finally{155if(randomfile !=null) {156try{157randomfile.close();158}catch(IOException e) {159160}161}162}163}164privatestaticvoidshowAvailableBytes(InputStream in) {165try{166System.out.println("当前字节输入流中的字节数为:" +in.available());167}catch(IOException e) {168e.printStackTrace();169}170}171publicstaticvoidmain(String[] args) {172String filename="E:\\BaiYiShaoNian.txt";173JavaIO.readFileByBytes(filename);174JavaIO.readFileByChar(filename);175JavaIO.readFileByLine(filename);176JavaIO.readFileByRandomAccess(filename);177}178}
Java写文件
1package天才白痴梦;23importjava.io.BufferedWriter;4importjava.io.File;5importjava.io.FileNotFoundException;6importjava.io.FileOutputStream;7importjava.io.FileWriter;8importjava.io.IOException;9importjava.io.OutputStreamWriter;1011publicclassJavaIO2 {1213publicstaticvoidmain(String[] args)throwsIOException {14String Path="E:\\天才白痴梦\\JAVA";15File file=newFile("E:\\天才白痴梦\\JAVA","BaiYiShaoNian.txt");16if(!file.exists()) {17try{18file.createNewFile();19}catch(IOException e) {20e.printStackTrace();21}22}23/**24* Java写入文件的三种方法25**/26FileOutputStream fos=null;27BufferedWriter bw=null;28FileWriter fw=null;29intvalue=1000;3031try{32fos=newFileOutputStream(newFile(Path+"fos.txt"));33longbegin=System.currentTimeMillis();34for(inti=1; i<=value; i++) {35fos.write(5);36}37longend=System.currentTimeMillis();38System.out.println("TheCostTime of FileOutputStream is : " + (end-begin));39fos.close();4041bw=newBufferedWriter(newOutputStreamWriter(newFileOutputStream(newFile(Path+"br.txt")),"UTF8"));42begin=System.currentTimeMillis();43for(inti=1; i<=value; i++) {44bw.write(5);45bw.newLine();46}47bw.close();48end=System.currentTimeMillis();49System.out.println("TheCostTime of BufferedWriter is : " + (end-begin));5051fw=newFileWriter(Path+"fw.txt");52begin=System.currentTimeMillis();53for(inti=1; i<=value; i++) {54fw.write(5);55}56fw.close();57end=System.currentTimeMillis();58System.out.println("TheCostTime of FileWriter is : " + (end-begin));596061}catch(Exception e) {62//TODO Auto-generated catch block63e.printStackTrace();64}finally{65try{66fos.close();//FileOutputStream67bw.close();//BufferedWriter68fw.close();//FileWriter69}catch(Exception e) {70e.printStackTrace();71}72}7374}75}