zoukankan      html  css  js  c++  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);
  • 相关阅读:
    FZU 2098 刻苦的小芳(卡特兰数,动态规划)
    卡特兰数总结
    FZU 1064 教授的测试(卡特兰数,递归)
    HDU 4745 Two Rabbits(区间DP,最长非连续回文子串)
    Java 第十一届 蓝桥杯 省模拟赛 正整数的摆动序列
    Java 第十一届 蓝桥杯 省模拟赛 反倍数
    Java 第十一届 蓝桥杯 省模拟赛 反倍数
    Java 第十一届 蓝桥杯 省模拟赛 反倍数
    Java 第十一届 蓝桥杯 省模拟赛 凯撒密码加密
    Java 第十一届 蓝桥杯 省模拟赛 凯撒密码加密
  • 原文地址:https://www.cnblogs.com/caoleiCoding/p/6404936.html
Copyright © 2011-2022 走看看