读书人

java IO 操作小结

发布时间: 2012-10-07 17:28:51 作者: rapoo

java IO 操作总结

package com.mybook.demo;import java.io.BufferedReader; import java.io.File; import java.io.FileOutputStream;import java.io.FileReader; import java.io.FileWriter; import java.io.IOException; import java.io.InputStream;import java.io.PrintWriter; import java.io.FileInputStream;; /** * @author Even.chen* version Java.0.1*/ public class Files { public static String path = "D:\\work\\mybook\\Files\\";public static String newFilePath = "D:\\work\\mybook\\FilesNew\\";public static void main(String[] args) throws IOException { Files f = new Files(); String fileName = "深入浅出General System V3.3.pdf";f.readFolderByFile(path); //不区分大小写boolean bool = f.fileIsNull(path,fileName);if (!bool) {f.copyFile(path+fileName, newFilePath+fileName);}//f.readLineFile("D:\\java\\","TestFile.txt"); // System.out.println(f.fileIsNull("f:\\","122.txt")); // System.out.println(f.createAndDeleteFolder("ss","f:\\")); // System.out.println(f.createAndDeleteFile("f:\\ss\\","TestFile.dat")); //f.createAndDeleteFolder("1","D:\\work\\");//} /** * 文件的写入 * @param filePath(文件路径) * @param fileName(文件名) * @param args[] * @throws IOException */ public void writeFile(String filePath,String fileName,String[] args) throws IOException { FileWriter fw = new FileWriter(filePath+fileName); PrintWriter out=new PrintWriter(fw); for(String arg : args) { out.write(arg.toCharArray()); out.println(); //out.flush(); }System.out.println("写入成功!"); fw.close(); out.close(); } /** * 文件的写入 * @param filePath(文件路径) * @param fileName(文件名) * @param args * @throws IOException */ public void writeFile(String filePath,String fileName,String args) throws IOException { FileWriter fw = new FileWriter(filePath+fileName); fw.write(args); fw.close(); } /** * 创建与删除文件 * @param filePath * @param fileName * @return 创建成功返回true * @throws IOException */ public boolean createAndDeleteFile(String filePath,String fileName) throws IOException { boolean result = false; File file = new File(filePath,fileName); if(file.exists()){if(file.isFile()) { file.delete(); result = true; System.out.println("文件已经删除!"); } else {   System.out.println("对不起,该路径为目录!");    }}else { file.createNewFile(); //jdk5.0的新方法result = true; System.out.println("文件已经创建!"); } return result; } /** * 创建和删除目录 * @param folderName * @param filePath * @return 删除成功返回true */ public boolean createAndDeleteFolder(String folderName,String filePath) { boolean result = false; try { File file = new File(filePath+folderName); if(file.exists()) { if(file.isDirectory()){file.delete(); System.out.println("目录已经存在,已删除!"); result = true; }else{System.out.println("对不起,该路径为文件!"); }} else { file.mkdir(); System.out.println("目录不存在,已经建立!"); result = true; } } catch(Exception ex) { result = false; System.out.println("CreateAndDeleteFolder is error:"+ex); } return result; } /** * 输出目录中的所有文件及目录名字 * @param filePath */ public void readFolderByFile(String filePath){ File file = new File(filePath); File[] tempFile = file.listFiles(); for(File o : tempFile) { if(o.isFile()) { System.out.println("File : "+o.getName()); } if(o.isDirectory()) { System.out.println("Directory : "+o.getName()); } } } /** * 检查文件中是否为一个空 * @param filePath * @param fileName * @return 为空返回true * @throws IOException */ public boolean fileIsNull(String filePath,String fileName) throws IOException { boolean result = false; FileReader fr = new FileReader(filePath+fileName); if(fr.read() == -1) { result = true; System.out.println(fileName+" 文件中没有数据!"); } else { System.out.println(fileName+" 文件中有数据!"); } fr.close(); return result; } /** * 读取文件中的所有内容 * @param filePath * @param fileName * @throws IOException */ public void readAllFile(String filePath,String fileName) throws IOException { FileReader fr = new FileReader(filePath+fileName); //PrintWriter pr=new PrintWriter(fr);//pr.printint count = fr.read(); while(count != -1) { System.out.print((char)count); count = fr.read(); //System.out.println();if(count == 13) { fr.skip(1); System.out.print("跳过!"); }} System.out.println(); fr.close(); } /** * 一行一行的读取文件中的数据 * @param filePath * @param fileName * @throws IOException */ public void readLineFile(String filePath,String fileName) throws IOException { FileReader fr = new FileReader(filePath+fileName); BufferedReader br = new BufferedReader(fr); String line = br.readLine(); while(line != null) { System.out.println(line); line = br.readLine(); } br.close(); fr.close(); }/***************************以下是常用的文件操作方法******************************//**       *  @see 新建目录       *  @param  folderPath  String  如  c:/fqf       *  @return  boolean       */     public  void  newFolder(String  folderPath)  {         try  {             String  filePath  =  folderPath;             filePath  =  filePath.toString();             java.io.File  myFilePath  =  new  java.io.File(filePath);             if  (!myFilePath.exists())              {                 myFilePath.mkdir();             }         }         catch  (Exception  e)        {             System.out.println("新建目录操作出错");             e.printStackTrace();         }     }      /**       *  @see 新建文件       *  @param  filePathAndName  String  文件路径及名称  如c:/fqf.txt       *  @param  fileContent  String  文件内容       *  @return  boolean       */     public  void  newFile(String  filePathAndName,  String  fileContent)  {          try  {             String  filePath  =  filePathAndName;             filePath  =  filePath.toString();             File  myFilePath  =  new  File(filePath);             if  (!myFilePath.exists())  {                 myFilePath.createNewFile();             }             FileWriter  resultFile  =  new  FileWriter(myFilePath);             PrintWriter  myFile  =  new  PrintWriter(resultFile);             String  strContent  =  fileContent;             myFile.println(strContent);             resultFile.close();          }         catch  (Exception  e)  {             System.out.println("新建文件操作出错");             e.printStackTrace();          }      }      /**       *  @see 删除文件       *  @param  filePathAndName  String  文件路径及名称  如c:/fqf.txt       *  @param  fileContent  String       *  @return  boolean       */     public  void  delFile(String  filePathAndName)  {         try  {             String  filePath  =  filePathAndName;             filePath  =  filePath.toString();             java.io.File  myDelFile  =  new  java.io.File(filePath);             myDelFile.delete();             System.out.println(myDelFile + "\\文件存在,已删除。");        }         catch  (Exception  e)  {             System.out.println("删除文件操作出错");             e.printStackTrace();          }      }      /**       *  @see 删除文件夹       *  @param  filePathAndName  String  文件夹路径及名称  如c:/fqf       *  @param  fileContent  String       *  @return  boolean       */     public  void  delFolder(String  folderPath)  {         try  {             delAllFile(folderPath);  //删除完里面所有内容             String  filePath  =  folderPath;             filePath  =  filePath.toString();             java.io.File  myFilePath  =  new  java.io.File(filePath);             myFilePath.delete();  //删除空文件夹          }         catch  (Exception  e)  {             System.out.println("删除文件夹操作出错");             e.printStackTrace();          }      }      /**       *  @see 删除文件夹里面的所有文件       *  @param  path  String  文件夹路径  如  c:/fqf       */     public  void  delAllFile(String  path)  {         File  file  =  new  File(path);         if  (!file.exists())  {             return;         }         if  (!file.isDirectory())  {             return;         }         String[]  tempList  =  file.list();         File  temp  =  null;         for  (int  i  =  0;  i  <  tempList.length;  i++)  {             if  (path.endsWith(File.separator))  {                 temp  =  new  File(path  +  tempList[i]);             }             else  {                 temp  =  new  File(path  +  File.separator  +  tempList[i]);             }             if  (temp.isFile())  {                 temp.delete();             }             if  (temp.isDirectory())  {                 delAllFile(path+"/"+  tempList[i]);//先删除文件夹里面的文件                 delFolder(path+"/"+  tempList[i]);//再删除空文件夹             }         }     }      /**       *  @see 复制单个文件       *  @param  oldPath  String  原文件路径  如:c:/fqf.txt       *  @param  newPath  String  复制后路径  如:f:/fqf.txt       *  @return  boolean       */     public  void  copyFile(String  oldPath,  String  newPath)  {         try  {             int  bytesum  =  0;             int  byteread  =  0;             File  oldfile  =  new  File(oldPath);             if  (oldfile.exists())  {  //文件存在时                 InputStream  inStream  =  new  FileInputStream(oldPath);  //读入原文件                 FileOutputStream  fs  =  new  FileOutputStream(newPath);                 byte[]  buffer  =  new  byte[1444];                 //int  length = 0;                 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();          }      }      /**       *  @see 复制整个文件夹内容       *  @param  oldPath  String  原文件路径  如:c:/fqf       *  @param  newPath  String  复制后路径  如:f:/fqf/ff       *  @return  boolean       */     public  void  copyFolder(String  oldPath,  String  newPath)  {          try  {             (new  File(newPath)).mkdirs();  //如果文件夹不存在  则建立新文件夹             File  a=new  File(oldPath);             String[]  file=a.list();             File  temp=null;             for  (int  i  =  0;  i  <  file.length;  i++)  {                 if(oldPath.endsWith(File.separator)){                     temp=new  File(oldPath+file[i]);                 }                 else{                     temp=new  File(oldPath+File.separator+file[i]);                 }                  if(temp.isFile()){                     FileInputStream  input  =  new  FileInputStream(temp);                     FileOutputStream  output  =  new  FileOutputStream(newPath  +  "/"  +                             (temp.getName()).toString());                     byte[]  b  =  new  byte[1024  *  5];                     int  len;                     while  (  (len  =  input.read(b))  !=  -1)  {                         output.write(b,  0,  len);                     }                     output.flush();                     output.close();                     input.close();                 }                 if(temp.isDirectory()){//如果是子文件夹                     copyFolder(oldPath+"/"+file[i],newPath+"/"+file[i]);                 }             }         }         catch  (Exception  e)  {             System.out.println("复制整个文件夹内容操作出错");             e.printStackTrace();          }      }      /**       *  @see 移动文件到指定目录       *  @param  oldPath  String  如:c:/fqf.txt       *  @param  newPath  String  如:d:/fqf.txt       */     public  void  moveFile(String  oldPath,  String  newPath)  {         copyFile(oldPath,  newPath);         delFile(oldPath);      }      /**       *  移动文件到指定目录       *  @param  oldPath  String  如:c:/fqf.txt       *  @param  newPath  String  如:d:/fqf.txt       */     public  void  moveFolder(String  oldPath,  String  newPath)  {         copyFolder(oldPath,  newPath);         delFolder(oldPath);      }        /**      * @see 获得系统根目录绝对路径      * @return String      *        */    public String getPath(){  String sysPath = this.getClass().getResource("/").getPath();     //对路径进行修改  sysPath = sysPath.substring(1, sysPath.length() - 16);  return  sysPath;      }


}

读书人网 >编程

热点推荐