首页 > 代码库 > java常见文件操作

java常见文件操作

  收集整理的java常见文件操作,方便平时使用:

 

//1.创建文件夹   //import java.io.*;   File myFolderPath = new File(str1);   try {       if (!myFolderPath.exists()) {          myFolderPath.mkdir();       }   }   catch (Exception e) {       System.out.println("新建目录操作出错");       e.printStackTrace();   }      
//2.创建文件   //import java.io.*;   File myFilePath = new File(str1);   try {       if (!myFilePath.exists()) {           myFilePath.createNewFile();       }       FileWriter resultFile = new FileWriter(myFilePath);       PrintWriter myFile = new PrintWriter(resultFile);       myFile.println(str2);       resultFile.close();   }   catch (Exception e) {       System.out.println("新建文件操作出错");       e.printStackTrace();   }      
//3.删除文件   //import java.io.*;   File myDelFile = new File(str1);   try {       myDelFile.delete();   }   catch (Exception e) {       System.out.println("删除文件操作出错");       e.printStackTrace();   }      
//4.删除文件夹   //import java.io.*;   File delFolderPath = new File(str1);   try {       delFolderPath.delete(); //删除空文件夹   }   catch (Exception e) {       System.out.println("删除文件夹操作出错");       e.printStackTrace();   }      
//5.删除一个文件下夹所有的文件夹   //import java.io.*;   File delfile=new File(str1);   File[] files=delfile.listFiles();   for(int i=0;i<files.length;i++){       if(files[i].isDirectory()){           files[i].delete();       }   }        
//6.清空文件夹   //import java.io.*;   File delfilefolder=new File(str1);   try {       if (!delfilefolder.exists()) {           delfilefolder.delete();       }       delfilefolder.mkdir();   }   catch (Exception e) {       System.out.println("清空目录操作出错");       e.printStackTrace();   }      
//7.读取文件   //import java.io.*;   // 逐行读取数据   FileReader fr = new FileReader(str1);   BufferedReader br = new BufferedReader(fr);   String str2 = br.readLine();   while (str2 != null) {       str3       str2 = br.readLine();   }   br.close();   fr.close();      
//8.写入文件   //import java.io.*;   // 将数据写入文件   try {       FileWriter fw = new FileWriter(str1);       fw.write(str2);       fw.flush();       fw.close();    } catch (IOException e) {       e.printStackTrace();   }     
//9.写入随机文件   //import java.io.*;   try {       RandomAcessFile logFile=new RandomAcessFile(str1,"rw");       long lg=logFile.length();       logFile.seek(str2);       logFile.writeByte(str3);   }catch(IOException ioe){       System.out.println("无法写入文件:"+ioe.getMessage());   }      
//10.读取文件属性   //import java.io.*;   // 文件属性的取得   File f = new File(str1);   if (af.exists()) {       System.out.println(f.getName() + "的属性如下: 文件长度为:" + f.length());       System.out.println(f.isFile() ? "是文件" : "不是文件");       System.out.println(f.isDirectory() ? "是目录" : "不是目录");       System.out.println(f.canRead() ? "可读取" : "不");       System.out.println(f.canWrite() ? "是隐藏文件" : "");       System.out.println("文件夹的最后修改日期为:" + new Date(f.lastModified()));       } else {       System.out.println(f.getName() + "的属性如下:");       System.out.println(f.isFile() ? "是文件" : "不是文件");       System.out.println(f.isDirectory() ? "是目录" : "不是目录");       System.out.println(f.canRead() ? "可读取" : "不");       System.out.println(f.canWrite() ? "是隐藏文件" : "");       System.out.println("文件的最后修改日期为:" + new Date(f.lastModified()));   }   if(f.canRead()){       str2   }   if(f.canWrite()){       str3   }     
//11.写入属性   //import java.io.*;   File filereadonly=new File(str1);   try {       boolean b=filereadonly.setReadOnly();   }   catch (Exception e) {       System.out.println("拒绝写访问:"+e.printStackTrace());   }      
//12.枚举一个文件夹中的所有文件   //import java.io.*;   //import java.util.*;   LinkedList folderList = new LinkedList();   folderList.add(str1);   while (folderList.size() > 0) {       File file = new File(folderList.peek());       folderList.removeLast();       File[] files = file.listFiles();       ArrayList fileList = new ArrayList();       for (int i = 0; i < files.length; i++) {           if (files[i].isDirectory()) {               folderList.add(files[i].getPath());           } else {               fileList.add(files[i]);           }       }       for (File f : fileList) {           str2=f.getAbsoluteFile();           str3       }   }     
//13.复制文件夹    //import java.io.*;   //import java.util.*;   LinkedList folderList = new LinkedList();   folderList.add(str1);   LinkedList folderList2 = new LinkedList();   folderList2.add(str2+ str1.substring(str1.lastIndexOf("\\")));   while (folderList.size() > 0) {       (new File(folderList2.peek())).mkdirs(); // 如果文件夹不存在 则建立新文件夹       File folders = new File(folderList.peek());       String[] file = folders.list();       File temp = null;       try {           for (int i = 0; i < file.length; i++) {               if (folderList.peek().endsWith(File.separator)) {                   temp = new File(folderList.peek() + File.separator                   + file[i]);               } else {                   temp = new File(folderList.peek() + File.separator + file[i]);               }               if (temp.isFile()) {                   FileInputStream input = new FileInputStream(temp);                   FileOutputStream output = new FileOutputStream(                   folderList2.peek() + File.separator + (temp.getName()).toString());                   byte[] b = new byte[5120];                   int len;                   while ((len = input.read(b)) != -1) {                       output.write(b, 0, len);                   }                   output.flush();                   output.close();                   input.close();               }               if (temp.isDirectory()) {// 如果是子文件夹                   for (File f : temp.listFiles()) {                       if (f.isDirectory()) {                           folderList.add(f.getPath());                           folderList2.add(folderList2.peek()                           + File.separator + f.getName());                       }                   }               }           }       } catch (Exception e) {       //System.out.println("复制整个文件夹内容操作出错");           e.printStackTrace();       }       folderList.removeFirst();       folderList2.removeFirst();   }     
//14.复制一个文件夹下所有的文件夹到另一个文件夹下   //import java.io.*;   //import java.util.*;   File copyfolders=new File(str1);   File[] copyfoldersList=copyfolders.listFiles();   for(int k=0;k<copyfoldersList.length;k++){       if(copyfoldersList[k].isDirectory()){           ArrayListfolderList=new ArrayList();           folderList.add(copyfoldersList[k].getPath());           ArrayListfolderList2=new ArrayList();           folderList2.add(str2+"/"+copyfoldersList[k].getName());           for(int j=0;j<folderList.length;j++){                (new File(folderList2.get(j))).mkdirs(); //如果文件夹不存在 则建立新文件夹                File folders=new File(folderList.get(j));                String[] file=folders.list();                File temp=null;                try {                    for (int i = 0; i < file.length; i++) {                        if(folderList.get(j).endsWith(File.separator)){                            temp=new File(folderList.get(j)+"/"+file[i]);                        } else {                            temp=new File(folderList.get(j)+"/"+File.separator+file[i]);                        }                        FileInputStream input = new FileInputStream(temp);                        if(temp.isFile()){                            FileInputStream input = new FileInputStream(temp);                            FileOutputStream output = new FileOutputStream(folderList2.get(j) + "/" + (temp.getName()).toString());                            byte[] b = new byte[5120];                            int len;                            while ( (len = input.read(b)) != -1) {                                output.write(b, 0, len);                            }                            output.flush();                            output.close();                            input.close();                        }                        if(temp.isDirectory()){//如果是子文件夹                            folderList.add(folderList.get(j)+"/"+file[i]);                            folderList2.add(folderList2.get(j)+"/"+file[i]);                        }                    }                }                catch (Exception e) {                    System.out.println("复制整个文件夹内容操作出错");                    e.printStackTrace();                }           }       }   }     
//15.移动文件夹   //import java.io.*;   //import java.util.*;   LinkedList folderList = new LinkedList();   folderList.add(str1);   LinkedList folderList2 = new LinkedList();   folderList2.add(str2 + str1.substring(str1.lastIndexOf("\\")));   while (folderList.size() > 0) {       (new File(folderList2.peek())).mkdirs(); // 如果文件夹不存在 则建立新文件夹       File folders = new File(folderList.peek());       String[] file = folders.list();       File temp = null;       try {           for (int i = 0; i < file.length; i++) {               if (folderList.peek().endsWith(File.separator)) {                   temp = new File(folderList.peek() + File.separator + file[i]);               } else {                   temp = new File(folderList.peek() + File.separator + file[i]);               }               if (temp.isFile()) {                   FileInputStream input = new FileInputStream(temp);                   FileOutputStream output = new FileOutputStream(                   folderList2.peek() + File.separator + (temp.getName()).toString());                   byte[] b = new byte[5120];                   int len;                   while ((len = input.read(b)) != -1) {                       output.write(b, 0, len);                   }                   output.flush();                   output.close();                   input.close();                   if (!temp.delete())                   System.out.println("删除单个文件操作出错!");               }               if (temp.isDirectory()) {// 如果是子文件夹                   for (File f : temp.listFiles()) {                       if (f.isDirectory()) {                           folderList.add(f.getPath());                           folderList2.add(folderList2.peek() + File.separator + f.getName());                       }                   }               }           }       } catch (Exception e) {           // System.out.println("复制整个文件夹内容操作出错");           e.printStackTrace();       }       folderList.removeFirst();       folderList2.removeFirst();   }   File f = new File(str1);   if (!f.delete()) {       for (File file : f.listFiles()) {           if (file.list().length == 0) {               System.out.println(file.getPath());               file.delete();           }       }   }   
//16.移动一个文件夹下所有的文件夹到另一个目录下   //import java.io.*;   //import java.util.*;   File movefolders=new File(str1);   File[] movefoldersList=movefolders.listFiles();   for(int k=0;k<movefoldersList.length;k++){       if(movefoldersList[k].isDirectory()){           ArrayListfolderList=new ArrayList();           folderList.add(movefoldersList[k].getPath());           ArrayListfolderList2=new ArrayList();           folderList2.add(str2+"/"+movefoldersList[k].getName());           for(int j=0;j<folderList.length;j++){                (new File(folderList2.get(j))).mkdirs(); //如果文件夹不存在 则建立新文件夹                File folders=new File(folderList.get(j));                String[] file=folders.list();                File temp=null;                try {                    for (int i = 0; i < file.length; i++) {                        if(folderList.get(j).endsWith(File.separator)){                            temp=new File(folderList.get(j)+"/"+file[i]);                        }                        else{                            temp=new File(folderList.get(j)+"/"+File.separator+file[i]);                        }                        FileInputStream input = new FileInputStream(temp);                        if(temp.isFile()){                            FileInputStream input = new FileInputStream(temp);                            FileOutputStream output = new FileOutputStream(folderList2.get(j) + "/" + (temp.getName()).toString());                            byte[] b = new byte[5120];                            int len;                            while ( (len = input.read(b)) != -1) {                                output.write(b, 0, len);                            }                            output.flush();                            output.close();                            input.close();                            temp.delete();                        }                        if(temp.isDirectory()){//如果是子文件夹                            folderList.add(folderList.get(j)+"/"+file[i]);                            folderList2.add(folderList2.get(j)+"/"+file[i]);                        }                    }                }                catch (Exception e) {                    System.out.println("复制整个文件夹内容操作出错");                    e.printStackTrace();                }           }           movefoldersList[k].delete();       }   }     
//17.以一个文件夹的框架在另一个目录创建文件夹和空文件   //import java.io.*;   //import java.util.*;   boolean b=false;//不创建空文件   ArrayListfolderList=new ArrayList();   folderList.add(str1);   ArrayListfolderList2=new ArrayList();   folderList2.add(str2);   for(int j=0;j<folderList.length;j++){       (new File(folderList2.get(j))).mkdirs(); //如果文件夹不存在 则建立新文件夹       File folders=new File(folderList.get(j));       String[] file=folders.list();       File temp=null;       try {           for (int i = 0; i < file.length; i++) {               if(folderList.get(j).endsWith(File.separator)){                   temp=new File(folderList.get(j)+"/"+file[i]);               }               else{                   temp=new File(folderList.get(j)+"/"+File.separator+file[i]);               }               FileInputStream input = new FileInputStream(temp);               if(temp.isFile()){                   if (b) temp.createNewFile();               }               if(temp.isDirectory()){//如果是子文件夹                   folderList.add(folderList.get(j)+"/"+file[i]);                   folderList2.add(folderList2.get(j)+"/"+file[i]);               }           }       }       catch (Exception e) {           System.out.println("复制整个文件夹内容操作出错");           e.printStackTrace();       }   }     
//18.复制文件   //import java.io.*;    int bytesum = 0;    int byteread = 0;    File oldfile = new File(str1);    try {    if (oldfile.exists()) { //文件存在时    FileInputStream inStream = new FileInputStream(oldfile); //读入原文件    FileOutputStream fs = new FileOutputStream(new File(str2,oldfile.getName()));    byte[] buffer = new byte[5120];    int length;    while ( (byteread = inStream.read(buffer)) != -1) {    bytesum += byteread; //字节数 文件大小    System.out.println(bytesum);    fs.write(buffer, 0, byteread);    }    inStream.close();    }    }    catch (Exception e) {    System.out.println("复制单个文件操作出错");    e.printStackTrace();    }      
//19.复制一个文件夹下所有的文件到另一个目录   //import java.io.*;   File copyfiles=new File(str1);   File[] files=copyfiles.listFiles();   for(int i=0;i<files.length;i++){       if(!files[i].isDirectory()){           int bytesum = 0;           int byteread = 0;           try {               InputStream inStream = new FileInputStream(files[i]); //读入原文件               FileOutputStream fs = new FileOutputStream(new File(str2,files[i].getName());               byte[] buffer = new byte[5120];               int length;               while ( (byteread = inStream.read(buffer)) != -1) {                   bytesum += byteread; //字节数 文件大小                   System.out.println(bytesum);                   fs.write(buffer, 0, byteread);               }               inStream.close();           } catch (Exception e) {               System.out.println("复制单个文件操作出错");               e.printStackTrace();           }       }   }     
 //20.提取扩展名     String str2=str1.substring(str1.lastIndexOf(".")+1);

 

java常见文件操作