Java文件处理类
2018-07-20 来源:open-open
包含一些对文件的基本操作。 import java.io.*; import java.util.ArrayList; import java.util.List; public class fileTest { static int countFiles=0; static int countFolders=0; public static void createFile(String filepath) { File file=new File(filepath); if(file.exists()) { System.out.println("目标文件已经存在!"); return; } if(filepath.endsWith(File.separator)) { System.out.println("目标文件不能为目录!"); return; } try { if(file.createNewFile()) System.out.println("文件创建成功!"); else { System.out.println("文件创建失败!"); return; } } catch (IOException e) { // TODO Auto-generated catch block e.printStackTrace(); } } public static void createDir(String dirname) { if(!dirname.endsWith(File.separator)) dirname=dirname+File.separator; File dir=new File(dirname); if(dir.exists()) { System.out.println("目录已存在!"); return; } if(dir.mkdirs()) System.out.println("目录创建成功!"); else { System.out.println("目录创建失败!"); return; } } public static boolean checkDirExist(String dirname) { File file=new File(dirname); if(file.exists()) { if(file.isDirectory()) return true; } return false; } public static File[] getDirFiles(String dirname) { File[] result=null; File fileDir = new File(dirname); if (!fileDir.exists()) { System.out.println("文件夹不存在"); return null; } else { if (!fileDir.isDirectory()) { fileDir = new File(fileDir.getParent()); } result = fileDir.listFiles(); } return result; } public static void deleteFiles(String filename) { File file=new File(filename); if(!file.exists()) { System.out.println("文件不存在!"); return; } if(file.delete()) { System.out.println(filename+"文件删除成功!"); } } public static void deleteDirs(String dirname) { if(!dirname.endsWith(File.separator)) dirname=dirname+File.separator; File dirn=new File(dirname); if(!dirn.exists()) { System.out.println("文件目录不存在!"); return; } File[] files=dirn.listFiles(); for(int i=0;i<files.length;i++) { if(files[i].isFile()) { deleteFiles(files[i].getAbsolutePath()); } else deleteDirs(files[i].getAbsolutePath()); } if(dirn.delete()) { System.out.println("目录删除成功!"); } } public static void searchFiles(String dirname,String filename) { if(!dirname.endsWith(File.separator)) dirname=dirname+File.separator; File dir=new File(dirname); if(!dir.exists()) { System.out.println("该文件夹不存在"); return; } File[] files=dir.listFiles(); for(int i=0;i<files.length;i++) { if(files[i].isFile()) { if(files[i].getName().equals(filename)) System.out.println("文件路径为:"+files[i].getAbsolutePath()); } else { searchFiles(files[i].getAbsolutePath(),filename); } } } public static File[] searchFile(File folder,final String keyWord) { File[] subFolders=folder.listFiles(new FileFilter() { public boolean accept(File pathname) { if(pathname.isFile()) countFiles++; else countFolders++; if(pathname.isDirectory()||(pathname.isFile()&&pathname.getName().contains(keyWord))) return true; return false; } }); List<File> result=new ArrayList<File>(); for(int i=0;i<subFolders.length;i++) { if(subFolders[i].isFile()) result.add(subFolders[i]); else { File[] foldResult=searchFile(subFolders[i],keyWord); for(int j=0;j<foldResult.length;j++) result.add(foldResult[j]); } } File files[]=new File[result.size()]; result.toArray(files); return files; } public static void copyFileToFile(File tofile,File fromfile) { if(tofile.exists()) { System.out.println("文件已经存在!"); return; } else { try { tofile.createNewFile(); } catch (IOException e) { // TODO Auto-generated catch block e.printStackTrace(); } } System.out.println("复制文件从"+fromfile.getAbsolutePath()+"到"+tofile.getAbsolutePath()); try { InputStream is=new FileInputStream(fromfile); FileOutputStream fos=new FileOutputStream(tofile); byte []buffer=new byte[1024]; try { while(is.read(buffer)!=-1) fos.write(buffer); is.close(); fos.close(); } catch (IOException e) { // TODO Auto-generated catch block e.printStackTrace(); } } catch (FileNotFoundException e) { // TODO Auto-generated catch block e.printStackTrace(); } } /** * @param file 要复制的文件 * @param dirname 文件复制到目标目录 */ public static void copyFileToDir(File file,String dirname) { createDir(dirname); String filename=dirname+"/"+file.getName(); File nfile=new File(filename); copyFileToFile(nfile,file); } public static void copyDirToDir(String todir,String fromdir) { File []f=getDirFiles(fromdir); for(int i=0;i<f.length;i++) { if(f[i].isFile()) copyFileToDir(f[i],todir); else copyDirToDir(todir+"/"+f[i].getName(),fromdir+"/"+f[i].getName()); } System.out.println(fromdir+"复制到文件夹"+todir+"复制完成!"); } /** * @param args * @throws IOException */ public static byte[] readFilebyByte(String filename) throws IOException { byte[] result = null; File file = new File(filename); if (file.exists() && file.isFile() && file.length() > 0) { result = new byte[(int) file.length()]; FileInputStream inStream = new FileInputStream(filename); inStream.read(result); inStream.close(); } return result; } public static void readFilebyLine(String filename) throws IOException { File file=new File(filename); BufferedReader reader=null; System.out.println("以行为单位读取数据,一次读取一行:"); try { reader=new BufferedReader(new FileReader(file)); String temp=null; int line=1; while((temp=reader.readLine())!=null) { System.out.println("line"+line+":"+temp); line++; } reader.close(); } catch (FileNotFoundException e) { // TODO Auto-generated catch block e.printStackTrace(); } } public static void writeFilebyByte(String filename) throws IOException { String content="fsfni ds dw wod"; File file=new File(filename); OutputStream out=null; System.out.println("以字节为单位写入文件:"+content); out=new FileOutputStream(file); byte []bytes=content.getBytes(); out.write(bytes); out.close(); } public static void writeFilebyChar(String filename) throws IOException { String content="fsfni ds dw wod"; File file=new File(filename); Writer writer=null; System.out.println("以字符为单位写入文件:"+content); writer=new OutputStreamWriter(new FileOutputStream(file)); writer.write(content); writer.close(); } public static void writeFilebyLine(String filename) throws IOException { String content="fsfni ds dw wod"; File file=new File(filename); PrintWriter writer=null; System.out.println("以行为单位写入文件:"+content); writer=new PrintWriter(new FileOutputStream(file)); writer.println(content); writer.print(2355); writer.flush(); writer.close(); } public static void addContent1(String filename) throws IOException { FileWriter writer=new FileWriter(filename,true); String content="this is a nice man,so you should get it"; writer.write(content); writer.close(); } public static void addContent2(String filename) throws IOException { RandomAccessFile rfile=new RandomAccessFile(filename, "rw"); long filelength=rfile.length(); rfile.seek(filelength); String content="hello world"; rfile.write(content.getBytes("gb2312")); rfile.close(); } /** * @param args * @throws IOException */ public static void main(String[] args) throws IOException { // TODO Auto-generated method stub String dirname="c:/cc/"; String todir="c:/dd/"; String tdir="c:/ee/"; String fn="c:/cc/c.txt"; String filename="ww.txt"; File folder=new File("c:/cc/"); String keyword="ww"; //readFilebyLine(fn); writeFilebyLine(fn); addContent1(fn); addContent2(fn); //File fromfile=new File("c:/cc/c.txt"); //File tofile=new File("e:/ccc.txt"); //byte[] fb=readFilebyByte(fn); //for(int i=0;i<fb.length;i++) // System.out.println((char)fb[i]); //System.out.println(fb.toString()); //copyFile(tofile,fromfile); //copyFileToDir(fromfile,todir); //copyDirToDir(tdir,dirname); //File[] f=searchFile(folder,keyword); //createDir(dirname); //deleteDirs(dirname); //searchFiles(dirname, filename); //File[] f=getDirFiles(dirname); //for(int i=0;i<f.length;i++) { // System.out.println(f[i].getAbsolutePath()); } } }
标签:
版权申明:本站文章部分自网络,如有侵权,请联系:west999com@outlook.com
特别注意:本站所有转载文章言论不代表本站观点!
本站所提供的图片等素材,版权归原作者所有,如需使用,请与原作者联系。
下一篇: Java数组操作的10大方法
最新资讯
热门推荐