java文件读写工具类分享
本文实例为大家分享了java文件读写工具类的具体代码,供大家参考,具体内容如下
importjava.io.BufferedInputStream; importjava.io.BufferedOutputStream; importjava.io.BufferedReader; importjava.io.File; importjava.io.FileInputStream; importjava.io.FileReader; importjava.io.FileWriter; importjava.io.IOException; importjava.io.InputStream; importjava.io.InputStreamReader; importjava.io.OutputStream; importjava.io.PrintWriter; importjava.net.URLEncoder; importjava.util.ArrayList; importjava.util.Calendar; importjava.util.Date; importjava.util.HashMap; importjava.util.HashSet; importjava.util.List; importjavax.servlet.http.HttpServletResponse; /** *文件操作工具类
*@version1.0 *@authorli_hao *@date2017年1月18日 */ @SuppressWarnings({"resource","unused"}) publicclassFileUtils{ /** *获取windows/linux的项目根目录 *@return */ publicstaticStringgetConTextPath(){ StringfileUrl=Thread.currentThread().getContextClassLoader().getResource("").getPath(); if("usr".equals(fileUrl.substring(1,4))){ fileUrl=(fileUrl.substring(0,fileUrl.length()-16));//linux }else{ fileUrl=(fileUrl.substring(1,fileUrl.length()-16));//windows } returnfileUrl; } /** *字符串转数组 *@paramstr字符串 *@paramsplitStr分隔符 *@return */ publicstaticString[]StringToArray(Stringstr,StringsplitStr){ String[]arrayStr=null; if(!"".equals(str)&&str!=null){ if(str.indexOf(splitStr)!=-1){ arrayStr=str.split(splitStr); }else{ arrayStr=newString[1]; arrayStr[0]=str; } } returnarrayStr; } /** *读取文件 * *@paramPath *@return */ publicstaticStringReadFile(StringPath){ BufferedReaderreader=null; Stringlaststr=""; try{ FileInputStreamfileInputStream=newFileInputStream(Path); InputStreamReaderinputStreamReader=newInputStreamReader(fileInputStream,"UTF-8"); reader=newBufferedReader(inputStreamReader); StringtempString=null; while((tempString=reader.readLine())!=null){ laststr+=tempString; } reader.close(); }catch(IOExceptione){ e.printStackTrace(); }finally{ if(reader!=null){ try{ reader.close(); }catch(IOExceptione){ e.printStackTrace(); } } } returnlaststr; } /** *获取文件夹下所有文件的名称+模糊查询(当不需要模糊查询时,queryStr传空或null即可) *1.当路径不存在时,map返回retType值为1 *2.当路径为文件路径时,map返回retType值为2,文件名fileName值为文件名 *3.当路径下有文件夹时,map返回retType值为3,文件名列表fileNameList,文件夹名列表folderNameList *@paramfolderPath路径 *@paramqueryStr模糊查询字符串 *@return */ publicstaticHashMap
getFilesName(StringfolderPath,StringqueryStr){ HashMap map=newHashMap<>(); List fileNameList=newArrayList<>();//文件名列表 List folderNameList=newArrayList<>();//文件夹名列表 Filef=newFile(folderPath); if(!f.exists()){//路径不存在 map.put("retType","1"); }else{ booleanflag=f.isDirectory(); if(flag==false){//路径为文件 map.put("retType","2"); map.put("fileName",f.getName()); }else{//路径为文件夹 map.put("retType","3"); Filefa[]=f.listFiles(); queryStr=queryStr==null?"":queryStr;//若queryStr传入为null,则替换为空(indexOf匹配值不能为null) for(inti=0;i readFileContent(StringfilePath){ BufferedReaderreader=null; List listContent=newArrayList<>(); try{ reader=newBufferedReader(newFileReader(filePath)); StringtempString=null; intline=1; //一次读入一行,直到读入null为文件结束 while((tempString=reader.readLine())!=null){ listContent.add(tempString); line++; } reader.close(); }catch(IOExceptione){ e.printStackTrace(); }finally{ if(reader!=null){ try{ reader.close(); }catch(IOExceptione1){ } } } returnlistContent; } /** *读取指定行数据,注意:0为开始行 *@paramfilePath *@paramlineNumber *@return */ publicstaticStringreadLineContent(StringfilePath,intlineNumber){ BufferedReaderreader=null; StringlineContent=""; try{ reader=newBufferedReader(newFileReader(filePath)); intline=0; while(line<=lineNumber){ lineContent=reader.readLine(); line++; } reader.close(); }catch(IOExceptione){ e.printStackTrace(); }finally{ if(reader!=null){ try{ reader.close(); }catch(IOExceptione1){ } } } returnlineContent; } /** *读取从beginLine到endLine数据(包含beginLine和endLine),注意:0为开始行 *@paramfilePath *@parambeginLineNumber开始行 *@paramendLineNumber结束行 *@return */ publicstaticList readLinesContent(StringfilePath,intbeginLineNumber,intendLineNumber){ List listContent=newArrayList<>(); try{ intcount=0; BufferedReaderreader=newBufferedReader(newFileReader(filePath)); Stringcontent=reader.readLine(); while(content!=null){ if(count>=beginLineNumber&&count<=endLineNumber){ listContent.add(content); } content=reader.readLine(); count++; } }catch(Exceptione){ } returnlistContent; } /** *读取若干文件中所有数据 *@paramlistFilePath *@return */ publicstaticList readFileContent_list(List listFilePath){ List listContent=newArrayList<>(); for(StringfilePath:listFilePath){ Filefile=newFile(filePath); BufferedReaderreader=null; try{ reader=newBufferedReader(newFileReader(file)); StringtempString=null; intline=1; //一次读入一行,直到读入null为文件结束 while((tempString=reader.readLine())!=null){ listContent.add(tempString); line++; } reader.close(); }catch(IOExceptione){ e.printStackTrace(); }finally{ if(reader!=null){ try{ reader.close(); }catch(IOExceptione1){ } } } } returnlistContent; } /** *文件数据写入(如果文件夹和文件不存在,则先创建,再写入) *@paramfilePath *@paramcontent *@paramflagtrue:如果文件存在且存在内容,则内容换行追加;false:如果文件存在且存在内容,则内容替换 */ publicstaticStringfileLinesWrite(StringfilePath,Stringcontent,booleanflag){ Stringfiledo="write"; FileWriterfw=null; try{ Filefile=newFile(filePath); //如果文件夹不存在,则创建文件夹 if(!file.getParentFile().exists()){ file.getParentFile().mkdirs(); } if(!file.exists()){//如果文件不存在,则创建文件,写入第一行内容 file.createNewFile(); fw=newFileWriter(file); filedo="create"; }else{//如果文件存在,则追加或替换内容 fw=newFileWriter(file,flag); } }catch(IOExceptione){ e.printStackTrace(); } PrintWriterpw=newPrintWriter(fw); pw.println(content); pw.flush(); try{ fw.flush(); pw.close(); fw.close(); }catch(IOExceptione){ e.printStackTrace(); } returnfiledo; } /** *写文件 *@paramins *@paramout */ publicstaticvoidwriteIntoOut(InputStreamins,OutputStreamout){ byte[]bb=newbyte[10*1024]; try{ intcnt=ins.read(bb); while(cnt>0){ out.write(bb,0,cnt); cnt=ins.read(bb); } }catch(IOExceptione){ e.printStackTrace(); }finally{ try{ out.flush(); ins.close(); out.close(); }catch(IOExceptione){ e.printStackTrace(); } } } /** *判断list中元素是否完全相同(完全相同返回true,否则返回false) *@paramlist *@return */ privatestaticbooleanhasSame(Listlist){ if(null==list) returnfalse; return1==newHashSet
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持毛票票。