Java文件操作类封装

来源:互联网 发布:围棋 知乎 编辑:程序博客网 时间:2024/05/22 15:59
    /*http://blog.csdn.net/tsyj810883979/article/details/6522669*/import java.io.BufferedReader;             import java.io.File;       import java.io.FileInputStream;       import java.io.FileNotFoundException;       import java.io.FileOutputStream;       import java.io.FileReader;       import java.io.FileWriter;       import java.io.IOException;       import java.io.InputStreamReader;       import java.io.ObjectInputStream;       import java.io.ObjectOutputStream;       import java.io.SequenceInputStream;       import java.net.URL;       import java.util.ArrayList;                   public class FileManager {                      //实现文件复制功能,将src文件内容复制到des文件中           public static void copy(File src,File des){               try {                   FileReader fr = new FileReader(src);                   FileWriter fw = new FileWriter(des);                   int rs;                   while((rs=fr.read())!=-1){                       fw.write(rs);                   }                   System.out.println("复制成功!");                   fr.close();                   fw.close();               }catch (FileNotFoundException e) {                   e.printStackTrace();               }catch (IOException e) {                   e.printStackTrace();               }                          }                      //实现文件删除功能,将src文件删除掉           public static void delete(File src){               if(src.isFile()){                   src.delete();               }if(src.isDirectory()){                   File[] f= src.listFiles();                   for(int i=0;i<f.length;i++){                       if(f[i].isFile()){                           f[i].delete();                       }if(f[i].isDirectory()){                           delete(f[i]);     //递归                           f[i].delete();    //将空文件夹删除,若不加这句,文件夹是删不掉的                       }                   }               }               System.out.println("OK");           }                      //对单个文件进行重命名           public static void rename(File src,String newName){               File newFile = new File(newName);               if(src.exists()){                   src.renameTo(newFile);                   System.out.println("重命名成功!");               }else{                   System.out.print("该文件不存在!");               }           }                      //对目录里面的所有文件按照数字方式进行重命名           public static void rename(File src){               if(src.isDirectory()){                   File[] f = src.listFiles();                   for(int i=0;i<f.length;i++){                       String path = f[i].getAbsolutePath(); //获得文件的绝对路径                       //System.out.println(path);                       int index = path.lastIndexOf(".");  //获得“.”在原字符串path中最后一次出现的位置                       String s = path.substring(index);   //截取字符串                       int index2 = path.indexOf("//");    //获取制定字符串在原字符串中第一次出现的位置                       String s2 = path.substring(0,index2+1);                       String newname = s2+i+s;                       f[i].renameTo(new File(newname));                   }                   System.out.println("OK!");               }else{                    System.out.println("wrong");               }           }                                            //列出src中的所有文件,返回一个List                      static ArrayList<String> filename = new ArrayList<String>();                 //定义链表必须在listFile(File src)外              //否则使用递归是无法列出多级目录下的所有文件的              //写在函数里面的话,每次递归就会产生一个新的ArrayList<String> filename              //这样得到的内容将会是最后一次生成的内容           public static ArrayList<String> listFile(File src){               File[] f = src.listFiles();               for(int i=0;i<f.length;i++){                   String name = f[i].getName();                   filename.add(name);                   if(f[i].isDirectory()){                       listFile(f[i]);                                          }               }               return filename;           }                      //将一个序列化的类写到指定的文件中           public static void writeObjectToFile(User u,File f){               User user = null;               try {                   FileOutputStream fos = new FileOutputStream(f);                   ObjectOutputStream obs = new ObjectOutputStream(fos);                   obs.writeObject(u);                   FileInputStream fis = new FileInputStream(f);                   ObjectInputStream ois = new ObjectInputStream(fis);                   user = (User)ois.readObject();                   System.out.println(user.name);                   System.out.println(user.password);                   System.out.println(user.age);               } catch (FileNotFoundException e) {                   e.printStackTrace();               }catch (IOException e) {                   e.printStackTrace();               } catch (ClassNotFoundException e) {                   e.printStackTrace();               }                          }                      //从文件中读出这个类           public static Object readObjectFromFile(File f){               User u = null;               try {                   FileInputStream fis = new FileInputStream(f);                   ObjectInputStream ois = new ObjectInputStream(fis);                   u = (User)ois.readObject();                   System.out.println(u.name);                   System.out.println(u.password);                   System.out.println(u.age);               } catch (FileNotFoundException e) {                   e.printStackTrace();               }catch (IOException e) {                   e.printStackTrace();               } catch (ClassNotFoundException e) {                   e.printStackTrace();               }               return u;           }                      //将文件组合在一个文件中           public static void compposite(File f1,File f2,File f3){               try {                   FileInputStream fis1 = new FileInputStream(f1);                   FileInputStream fis2 = new FileInputStream(f2);                   SequenceInputStream sis = new SequenceInputStream(fis1,fis2);                   FileOutputStream fos = new FileOutputStream(f3);                   int rs = 0;                   while((rs=sis.read())!=-1){                       fos.write(rs);                   }                   System.out.println("文件合并成功!");                   fis1.close();                   fis2.close();                   sis.close();                   fos.close();               } catch (FileNotFoundException e) {                   e.printStackTrace();               } catch (IOException e) {                   e.printStackTrace();               }                                     }                      //显示指定网页的源代码            public static String getCode(String strUrl)            {            try{                 URL url=new URL(strUrl);                 BufferedReader br=new BufferedReader(new InputStreamReader(url.openStream()));                 String s="";                 StringBuffer sb=new StringBuffer("");                 while((s=br.readLine())!=null)                 {                          sb.append(s+"/r/n");                     }                 br.close();                 return sb.toString();                } catch(Exception e){                   return "无法显示网页"+strUrl;                    }                 //return "无法显示网页"+strUrl;            }                                        /**           * @param args           */          public static void main(String[] args) {               //rename(new File("D:/temp"));               File src = new File("D://test");               File des = new File("D://2.txt");               File tmp = new File("D:/userinfo.txt");               File prc = new File("D:/1.txt");                   try {                       if(!src.exists()){                           src.createNewFile();                       }                       if(!des.exists()){                           des.createNewFile();                       }                   } catch (IOException e) {                       e.printStackTrace();                   }                                      //System.out.println(getCode("http://www.hao1.com"));                   //compposite(des,tmp,prc);                   //readObjectFromFile(des);                   /*User user = new User("hao","123",20);                  writeObjectToFile(user,des);*/                  /*ArrayList<String> f = listFile(src);                  for(int i=0; i<f.size(); i++) {                      System.out.println("文件名:"+f.get(i));                                        }*/                  //rename(src);               //listFile(src);               //rename(des,"D://3.txt");               delete(src);               //copy(src,des);                 }             }   


0 0
原创粉丝点击