代码大全吧 关注:81贴子:153
  • 13回复贴,共1

Java文件操作大全

只看楼主收藏回复

1.创建文件夹
//import java.io.*;
File myFolderPath = new File(%%1);
try {
if (!myFolderPath.exists()) {
   myFolderPath.mkdir();
}
}
catch (Exception e) {
System.out.println("新建目录操作出错");
e.printStackTrace();

2.创建文件
//import java.io.*;
File myFilePath = new File(%%1);
try {
if (!myFilePath.exists()) {
myFilePath.createNewFile();
}
FileWriter resultFile = new FileWriter(myFilePath);
PrintWriter myFile = new PrintWriter(resultFile);
myFile.println(%%2);
myFile.flush();
resultFile.close();
}
catch (Exception e) {
System.out.println("新建文件操作出错");
e.printStackTrace();

3.删除文件
//import java.io.*;
File myDelFile = new File(%%1);
try {
myDelFile.delete();
}
catch (Exception e) {
System.out.println("删除文件操作出错");
e.printStackTrace();

4.删除文件夹
/*
import java.io.*;
import java.util.*;
*/
LinkedList folderList = new LinkedList<String>();
folderList.add(%%1);
while (folderList.size() > 0) {
File file = new File(folderList.poll());
File[] files = file.listFiles();
ArrayList<File> fileList = new ArrayList<File>();
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) {
f.delete();
}
}
folderList = new LinkedList<String>();
folderList.add(%%1);
while (folderList.size() > 0) {
File file = new File(folderList.getLast());
if (file.delete()) {
folderList.removeLast();
} else {
File[] files = file.listFiles();
for (int i = 0; i < files.length; i++) {
folderList.add(files[i].getPath());
}
}
}
5.删除一个文件下夹所有的文件夹
/*
import java.io.*;
private static LinkedList<String> folderList=null;
*/
File delfile=new File(%%1);
File[] files=delfile.listFiles();
for(int i=0;i<files.length;i++){
if(files[i].isDirectory()){
if(!files[i].delete()){
folderList = new LinkedList<String>();
folderList.add(files[i]);
while (folderList.size() > 0) {



IP属地:上海1楼2009-10-23 21:56回复
    File file = new File(folderList.poll());
    File[] files = file.listFiles();
    ArrayList<File> fileList = new ArrayList<File>();
    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) {
    f.delete();
    }
    }
    folderList = new LinkedList<String>();
    folderList.add(files[i]);
    while (folderList.size() > 0) {
    File file = new File(folderList.getLast());
    if (file.delete()) {
    folderList.removeLast();
    } else {
    File[] files = file.listFiles();
    for (int i = 0; i < files.length; i++) {
    folderList.add(files[i].getPath());
    }
    }
    }
    }
      }

    6.清空文件夹
    //import java.io.*;
    File delfilefolder=new File(%%1);
    try {
    if (!delfilefolder.exists() && !delfilefolder.delete()){
    LinkedList folderList = new LinkedList<String>();
    folderList.add(delfilefolder);
    while (folderList.size() > 0) {
    File file = new File(folderList.poll());
    File[] files = file.listFiles();
    ArrayList<File> fileList = new ArrayList<File>();
    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) {
    f.delete();
    }
    }
    folderList = new LinkedList<String>();
    folderList.add(delfilefolder);
    while (folderList.size() > 0) {
    File file = new File(folderList.getLast());
    if (file.delete()) {
    folderList.removeLast();
    } else {
    File[] files = file.listFiles();
    for (int i = 0; i < files.length; i++) {
    folderList.add(files[i].getPath());
    }
    }
    }
    }
    delfilefolder.mkdir();
    }
    catch (Exception e) {
    System.out.println("清空目录操作出错");
    e.printStackTrace();

    7.读取文件
    //import java.io.*;
    // 逐行读取数据
    FileReader fr = new FileReader(%%1);
    BufferedReader br = new BufferedReader(fr);
    String %%2 = br.readLine();
    while (%%2 != null) {
    %%3
    %%2 = br.readLine();
    }
    br.close();
    fr.close(); 
    


    IP属地:上海2楼2009-10-23 21:56
    回复
      9.写入随机文件
      //import java.io.*;
      try {
      RandomAcessFile logFile=new RandomAcessFile(%%1,"rw");
      long lg=logFile.length();
      logFile.seek(%%2);
      logFile.writeByte(%%3);
      }catch(IOException ioe){
      System.out.println("无法写入文件:"+ioe.getMessage());

      10.读取文件属性
      //import java.io.*;
      // 文件属性的取得
      File af = new File(%%1);
      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()){
      %%2
      }
      if(f.canWrite()){
      %%3

      11.写入属性
      //import java.io.*;
      File filereadonly=new File(%%1);
      try {
      boolean b=filereadonly.setReadOnly();
      }
      catch (Exception e) {
      System.out.println("拒绝写访问:"+e.printStackTrace());
      }


      IP属地:上海3楼2009-10-24 15:19
      回复
        8.写入文件
        //import java.io.*;
        // 将数据写入文件
        try {
        FileWriter fw = new FileWriter(%%1);
        fw.write(%%2);
        fw.flush();
        fw.close(); 
        } catch (IOException e) {
        e.printStackTrace();
        }


        IP属地:上海4楼2009-10-24 15:19
        回复
          12.枚举一个文件夹中的所有文件
          /*
          import java.io.*;
          import java.util.*;
          */
          LinkedList<String> folderList = new LinkedList<String>();
          folderList.add(%%1);
          while (folderList.size() > 0) {
          File file = new File(folderList.poll());
          File[] files = file.listFiles();
          List<File> fileList = new ArrayList<File>();
          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) {
          %%2=f.getAbsoluteFile();
          %%3
          }
          }
          13.复制文件夹 
          /*
          import java.io.*;
          import java.util.*;
          */
          LinkedList<String> folderList = new LinkedList<String>();
          folderList.add(%%1);
          LinkedList<String> folderList2 = new LinkedList<String>();
          folderList2.add(%%2+ %%1.substring(%%1.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();
          }


          IP属地:上海5楼2009-10-24 15:19
          回复
            14.复制一个目录下所有的文件夹到另一个文件夹下
            /*
            import java.io.*;
            import java.util.*;
            */
            File copyfolders=new File(%%1);
            File[] copyfoldersList=copyfolders.listFiles();
            for(int k=0;k<copyfoldersList.length;k++){
            if(copyfoldersList[k].isDirectory()){
            List<String>folderList=new ArrayList<String>();
            folderList.add(copyfoldersList[k].getPath());
            List<String>folderList2=new ArrayList<String>();
            folderList2.add(%%2+"/"+copyfoldersList[k].getName());
            for(int j=0;j<folderList.size();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.separator+file[i]);
                }
                else{
                temp=new File(folderList.get(j)+File.separator+file[i]);
                }
                FileInputStream input = new FileInputStream(temp);
                if(temp.isFile()){
                FileOutputStream output = new FileOutputStream(folderList2.get(j) + 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()){//如果是子文件夹
                folderList.add(folderList.get(j)+"/"+file[i]);
                folderList2.add(folderList2.get(j)+"/"+file[i]);
                }
              }
              }
              catch (Exception e) {
              System.out.println("复制整个文件夹内容操作出错");
              e.printStackTrace();
              }
            }
            }
            }


            IP属地:上海6楼2009-10-24 15:20
            回复
              43.ZIP压缩文件夹
              /*
              import java.io.*;
              import java.util.*;
              import java.util.zip.*;
              */
               public static String zipFileProcess(ArrayList outputZipFileNameList, String outputZipNameAndPath) {
                ArrayList fileNames = new ArrayList();
                ArrayList files = new ArrayList();
                FileOutputStream fileOut = null;
                ZipOutputStream outputStream = null;
                FileInputStream fileIn = null;
                StringBuffer sb = new StringBuffer(outputZipNameAndPath);
                // FileInputStream fileIn =null;
                try {
                 if (outputZipNameAndPath.indexOf(".zip") != -1) {
                  outputZipNameAndPath = outputZipNameAndPath;
                 } else {
                  sb.append(".zip");
                  outputZipNameAndPath = sb.toString();
                 }
                 fileOut = new FileOutputStream(outputZipNameAndPath);
                 outputStream = new ZipOutputStream(fileOut);
                 int outputZipFileNameListSize = 0;
                 if (outputZipFileNameList != null) {
                  outputZipFileNameListSize = outputZipFileNameList.size();
                 }
                 for (int i = 0; i < outputZipFileNameListSize; i++) {
                  File rootFile = new File(outputZipFileNameList.get(i).toString());
                  listFile(rootFile, fileNames, files, "");
                 }
                 for (int loop = 0; loop < files.size(); loop++) {
                  fileIn = new FileInputStream((File) files.get(loop));
                  outputStream.putNextEntry(new ZipEntry((String) fileNames.get(loop)));
                  byte[] buffer = new byte[1024];
                  while (fileIn.read(buffer) != -1) {
                   outputStream.write(buffer);
                  }
                  outputStream.closeEntry();
                  fileIn.close();
                 }
                 return outputZipNameAndPath;
                } catch (IOException ioe) {
                 return null;
                } finally {
                 if (outputStream != null) {
                  try {
                   outputStream.close();
                  } catch (IOException e) {
                  }
                 }
                 if (fileIn != null) {
                  try {
                   fileIn.close();
                  } catch (IOException e) {
                  }
                 }
                }
               }
               private static void listFile(File parentFile, List nameList, List fileList, String directoryName) {
                if (parentFile.isDirectory()) {
                 File[] files = parentFile.listFiles();
                 for (int loop = 0; loop < files.length; loop++) {
                  listFile(files[loop], nameList, fileList, directoryName + parentFile.getName() + "/");
                 }
                } else {
                 fileList.add(parentFile);
                 nameList.add(directoryName + parentFile.getName());
                }
               }
                ArrayList outputZipFileName=new ArrayList();
                String savePath="";
                int argSize = 0;
                 savePath = %%1;
                   outputZipFileName.add(%%2);
                 ZipFileOther instance=new ZipFileOther();
                 instance.zipFileProcess(outputZipFileName,savePath);


              IP属地:上海7楼2009-10-25 10:44
              回复
                • 119.108.69.*


                8楼2009-12-10 17:13
                回复
                  • 61.158.102.*


                  9楼2009-12-30 18:57
                  回复
                    • 122.75.143.*


                    10楼2010-04-01 12:43
                    回复
                      • 115.46.64.*


                      11楼2010-04-09 19:23
                      回复
                        • 222.173.220.*


                        12楼2010-04-23 22:29
                        回复
                          • 210.21.248.*


                          13楼2010-06-09 09:50
                          回复
                            默默的顶一下


                            IP属地:湖北14楼2010-12-21 20:23
                            回复