java中多种方式读文件追加文件内容对文件的各种操作_第1页
java中多种方式读文件追加文件内容对文件的各种操作_第2页
java中多种方式读文件追加文件内容对文件的各种操作_第3页
java中多种方式读文件追加文件内容对文件的各种操作_第4页
java中多种方式读文件追加文件内容对文件的各种操作_第5页
已阅读5页,还剩21页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

一、多个方式读文件内容。1、按字节读取文件内容2、按字符读取文件内容3、按行读取文件内容4、随机读取文件内容importjava.io.BufferedReader;importjava.io.File;importjava.io.FileInputStream;importjava.io.FileReader;importjava.io.IOException;importjava.io.InputStream;importjava.io.InputStreamReader;importjava.io.RandomAccessFile;importjava.io.Reader;publicclassReadFromFile{/***以字节为单位读取文件,惯用于读二进制文件,如图片、声音、影像等文件。*@paramfileName文件名*/publicstaticvoidreadFileByBytes(StringfileName){Filefile=newFile(fileName);InputStreamin=null;try{System.out.println("以字节为单位读取文件内容,一次读一个字节:");//一次读一个字节in=newFileInputStream(file);inttempbyte;while((tempbyte=in.read())!=-1){System.out.write(tempbyte);}in.close();}catch(IOExceptione){e.printStackTrace();return;}try{System.out.println("以字节为单位读取文件内容,一次读多个字节:");//一次读多个字节byte[]tempbytes=newbyte[100];intbyteread=0;in=newFileInputStream(fileName);ReadFromFile.showAvailableBytes(in);//读入多个字节到字节数组中,byteread为一次读入字节数while((byteread=in.read(tempbytes))!=-1){System.out.write(tempbytes,0,byteread);}}catch(Exceptione1){e1.printStackTrace();}finally{if(in!=null){try{in.close();}catch(IOExceptione1){}}}}/***以字符为单位读取文件,惯用于读文本,数字等类型文件*@paramfileName文件名*/publicstaticvoidreadFileByChars(StringfileName){Filefile=newFile(fileName);Readerreader=null;try{System.out.println("以字符为单位读取文件内容,一次读一个字节:");//一次读一个字符reader=newInputStreamReader(newFileInputStream(file));inttempchar;while((tempchar=reader.read())!=-1){//对于windows下,/r/n这两个字符在一起时,表示一个换行。//但假如这两个字符分开显示时,会换两次行。//所以,屏蔽掉/r,或者屏蔽/n。不然,将会多出很多空行。if(((char)tempchar)!='/r'){System.out.print((char)tempchar);}}reader.close();}catch(Exceptione){e.printStackTrace();}try{System.out.println("以字符为单位读取文件内容,一次读多个字节:");//一次读多个字符char[]tempchars=newchar[30];intcharread=0;reader=newInputStreamReader(newFileInputStream(fileName));//读入多个字符到字符数组中,charread为一次读取字符数while((charread=reader.read(tempchars))!=-1){//一样屏蔽掉/r不显示if((charread==tempchars.length)&&(tempchars[tempchars.length-1]!='/r')){System.out.print(tempchars);}else{for(inti=0;i<charread;i++){if(tempchars=='/r'){continue;}else{System.out.print(tempchars);}}}}}catch(Exceptione1){e1.printStackTrace();}finally{if(reader!=null){try{reader.close();}catch(IOExceptione1){}}}}/***以行为单位读取文件,惯用于读面向行格式化文件*@paramfileName文件名*/publicstaticvoidreadFileByLines(StringfileName){Filefile=newFile(fileName);BufferedReaderreader=null;try{System.out.println("以行为单位读取文件内容,一次读一整行:");reader=newBufferedReader(newFileReader(file));StringtempString=null;intline=1;//一次读入一行,直到读入null为文件结束while((tempString=reader.readLine())!=null){//显示行号System.out.println("line"+line+":"+tempString);line++;}reader.close();}catch(IOExceptione){e.printStackTrace();}finally{if(reader!=null){try{reader.close();}catch(IOExceptione1){}}}}/***随机读取文件内容*@paramfileName文件名*/publicstaticvoidreadFileByRandomAccess(StringfileName){RandomAccessFilerandomFile=null;try{System.out.println("随机读取一段文件内容:");//打开一个随机访问文件流,按只读方式randomFile=newRandomAccessFile(fileName,"r");//文件长度,字节数longfileLength=randomFile.length();//读文件起始位置intbeginIndex=(fileLength>4)?4:0;//将读文件开始位置移到beginIndex位置。randomFile.seek(beginIndex);byte[]bytes=newbyte[10];intbyteread=0;//一次读10个字节,假如文件内容不足10个字节,则读剩下字节。//将一次读取字节数赋给bytereadwhile((byteread=randomFile.read(bytes))!=-1){System.out.write(bytes,0,byteread);}}catch(IOExceptione){e.printStackTrace();}finally{if(randomFile!=null){try{randomFile.close();}catch(IOExceptione1){}}}}/***显示输入流中还剩字节数*@paramin*/privatestaticvoidshowAvailableBytes(InputStreamin){try{System.out.println("当前字节输入流中字节数为:"+in.available());}catch(IOExceptione){e.printStackTrace();}}publicstaticvoidmain(String[]args){StringfileName="C:/temp/newTemp.txt";ReadFromFile.readFileByBytes(fileName);ReadFromFile.readFileByChars(fileName);ReadFromFile.readFileByLines(fileName);ReadFromFile.readFileByRandomAccess(fileName);}}二、将内容追加到文件尾部importjava.io.FileWriter;importjava.io.IOException;importjava.io.RandomAccessFile;/***将内容追加到文件尾部*/publicclassAppendToFile{/***A方法追加文件:使用RandomAccessFile*@paramfileName文件名*@paramcontent追加内容*/publicstaticvoidappendMethodA(StringfileName,Stringcontent){try{//打开一个随机访问文件流,按读写方式RandomAccessFilerandomFile=newRandomAccessFile(fileName,"rw");//文件长度,字节数longfileLength=randomFile.length();//将写文件指针移到文件尾。randomFile.seek(fileLength);randomFile.writeBytes(content);randomFile.close();}catch(IOExceptione){e.printStackTrace();}}/***B方法追加文件:使用FileWriter*@paramfileName*@paramcontent*/publicstaticvoidappendMethodB(StringfileName,Stringcontent){try{//打开一个写文件器,结构函数中第二个参数true表示以追加形式写文件FileWriterwriter=newFileWriter(fileName,true);writer.write(content);writer.close();}catch(IOExceptione){e.printStackTrace();}}三文件各种操作类importjava.io.*;/***FileOperate.java*文件各种操作*@author杨彩*文件操作1.0*/publicclassFileOperate{publicFileOperate(){}/***新建目录*/publicvoidnewFolder(StringfolderPath){try{StringfilePath=folderPath;filePath=filePath.toString();FilemyFilePath=newFile(filePath);if(!myFilePath.exists()){myFilePath.mkdir();}System.out.println("新建目录操作成功执行");}catch(Exceptione){System.out.println("新建目录操作犯错");e.printStackTrace();}}/***新建文件*/publicvoidnewFile(StringfilePathAndName,StringfileContent){try{StringfilePath=filePathAndName;filePath=filePath.toString();FilemyFilePath=newFile(filePath);if(!myFilePath.exists()){myFilePath.createNewFile();}FileWriterresultFile=newFileWriter(myFilePath);PrintWritermyFile=newPrintWriter(resultFile);StringstrContent=fileContent;myFile.println(strContent);resultFile.close();System.out.println("新建文件操作成功执行");}catch(Exceptione){System.out.println("新建目录操作犯错");e.printStackTrace();}}/***删除文件*/publicvoiddelFile(StringfilePathAndName){try{StringfilePath=filePathAndName;filePath=filePath.toString();FilemyDelFile=newFile(filePath);myDelFile.delete();System.out.println("删除文件操作成功执行");}catch(Exceptione){System.out.println("删除文件操作犯错");e.printStackTrace();}}/***删除文件夹*/publicvoiddelFolder(StringfolderPath){try{delAllFile(folderPath);//删除完里面全部内容StringfilePath=folderPath;filePath=filePath.toString();FilemyFilePath=newFile(filePath);if(myFilePath.delete()){//删除空文件夹System.out.println("删除文件夹"+folderPath+"操作成功执行");}else{System.out.println("删除文件夹"+folderPath+"操作执行失败");}}catch(Exceptione){System.out.println("删除文件夹操作犯错");e.printStackTrace();}}/***删除文件夹里面全部文件*@parampathString文件夹路径如c:/fqf*/publicvoiddelAllFile(Stringpath){Filefile=newFile(path);if(!file.exists()){return;}if(!file.isDirectory()){return;}String[]tempList=file.list();Filetemp=null;for(inti=0;i<tempList.length;i++){if(path.endsWith(File.separator)){temp=newFile(path+tempList);}else{temp=newFile(path+File.separator+tempList);}if(temp.isFile()){temp.delete();}if(temp.isDirectory()){//delAllFile(path+"/"+tempList);//先删除文件夹里面文件delFolder(path+File.separatorChar+tempList);//再删除空文件夹}}System.out.println("删除文件操作成功执行");}/***复制单个文件*@paramoldPathString原文件路径如:c:/fqf.txt*@paramnewPathString复制后路径如:f:/fqf.txt*/publicvoidcopyFile(StringoldPath,StringnewPath){try{intbytesum=0;intbyteread=0;Fileoldfile=newFile(oldPath);if(oldfile.exists()){//文件存在时InputStreaminStream=newFileInputStream(oldPath);//读入原文件FileOutputStreamfs=newFileOutputStream(newPath);byte[]buffer=newbyte[1444];while((byteread=inStream.read(buffer))!=-1){bytesum+=byteread;//字节数文件大小System.out.println(bytesum);fs.write(buffer,0,byteread);}inStream.close();}System.out.println("删除文件夹操作成功执行");}catch(Exceptione){System.out.println("复制单个文件操作犯错");e.printStackTrace();}}/***复制整个文件夹内容*@paramoldPathString原文件路径如:c:/fqf*@paramnewPathString复制后路径如:f:/fqf/ff*/publicvoidcopyFolder(StringoldPath,StringnewPath){try{(newFile(newPath)).mkdirs();//假如文件夹不存在则建立新文件夹Filea=newFile(oldPath);String[]file=a.list();Filetemp=null;for(inti=0;i<file.length;i++){if(oldPath.endsWith(File.separator)){temp=newFile(oldPath+file);}else{temp=newFile(oldPath+File.separator+file);}if(temp.isFile()){FileInputStreaminput=newFileInputStream(temp);FileOutputStreamoutput=newFileOutputStream(newPath+"/"+(temp.getName()).toString());byte[]b=newbyte[1024*5];intlen;while((len=input.read(b))!=-1){output.write(b,0,len);}output.flush();output.close();input.close();}if(temp.isDirectory()){//假如是子文件夹copyFolder(oldPath+"/"+file,newPath+"/"+file);}}System.out.println("复制文件夹操作成功执行");}catch(Exceptione){System.out.println("复制整个文件夹内容操作犯错");e.printStackTrace();}}/***移动文件到指定目录*@paramoldPathString如:c:/fqf.txt*@paramnewPathString如:d:/fqf.txt*/publicstaticvoidmain(Stringargs[]){Stringaa,bb;booleanexitnow=false;System.out.println("使用此功效请按[1]功效一:新建目录");System.out.println("使用此功效请按[2]功效二:新建文件");System.out.println("使用此功效请按[3]功效三:删除文件");System.out.println("使用此功效请按[4]功效四:删除文件夹");System.out.println("使用此功效请按[5]功效五:删除文件夹里面全部文件");System.out.println("使用此功效请按[6]功效六:复制文件");System.out.println("使用此功效请按[7]功效七:复制文件夹全部内容");System.out.println("使用此功效请按[8]功效八:移动文件到指定目录");System.out.println("使用此功效请按[9]功效九:移动文件夹到指定目录");System.out.println("使用此功效请按[10]退出程序");while(!exitnow){FileOperatefo=newFileOperate();try{BufferedReaderBin=newBufferedReader(newInputStreamReader(System.in));Stringa=Bin.readLine();intb=Integer.parseInt(a);switch(b){case1:System.out.println("你选择了功效一请输入目录名");aa=Bin.readLine();fo.newFolder(aa);break;case2:System.out.println("你选择了功效二请输入文件名");aa=Bin.readLine();System.out.println("请输入在"+aa+"中内容");bb=Bin.readLine();fo.newFile(aa,bb);break;case3:System.out.println("你选择了功效三请输入文件名");aa=Bin.readLine();fo.delFile(aa);break;case4:System.out.println("你选择了功效四请输入文件名");aa=Bin.readLine();fo.delFolder(aa);break;case5:System.out.println("你选择了功效五

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论