JAvaファイル読み書き操作大全

6601 ワード

一.コンソールユーザーが入力した情報の取得
public String getInputMessage() throws IOException...{
         System.out.println(" ∶");
         byte buffer[]=new byte[1024];
         int count=System.in.read(buffer);
         char[] ch=new char[count-2];// , 
         for(int i=0;i<count-2;i++)
             ch[i]=(char)buffer[i];
         String str=new String(ch);
         return str;
     }

ユーザーが入力した情報を返すことができますが、中国語入力がサポートされていない点では、さらなる改善が必要です.
二.ファイル1をコピーします.ファイルフローによるファイルのコピー
public void copyFile(String src,String dest) throws IOException...{
         FileInputStream in=new FileInputStream(src);
         File file=new File(dest);
         if(!file.exists())
             file.createNewFile();
         FileOutputStream out=new FileOutputStream(file);
         int c;
         byte buffer[]=new byte[1024];
         while((c=in.read(buffer))!=-1)...{
             for(int i=0;i<c;i++)
                 out.write(buffer[i]);        
         }
         in.close();
         out.close();
     }

この方法はテストを経て、中国語処理をサポートし、txt、xml、jpg、docなどの多くのタイプのフォーマットをコピーすることができる.
三.ファイルを書く
     1.PrintStreamでファイルを書く
 public void PrintStreamDemo()...{
         try ...{
             FileOutputStream out=new FileOutputStream("D:/test.txt");
             PrintStream p=new PrintStream(out);
             for(int i=0;i<10;i++)
                 p.println("This is "+i+" line");
         } catch (FileNotFoundException e) ...{
             e.printStackTrace();
         }
     }

   2.StringBufferでファイルを書く
public void StringBufferDemo() throws IOException......{
         File file=new File("/root/sms.log");
         if(!file.exists())
             file.createNewFile();
         FileOutputStream out=new FileOutputStream(file,true);        
         for(int i=0;i<10000;i++)......{
             StringBuffer sb=new StringBuffer();
             sb.append(" "+i+" : ,  ");
             out.write(sb.toString().getBytes("utf-8"));
         }        
         out.close();
     }

この方法は,どのような符号化を用いて中国語の問題を効果的に解決するかを設定できる.
四.ファイル名の変更
 public void renameFile(String path,String oldname,String newname)...{
         if(!oldname.equals(newname))...{// , 
             File oldfile=new File(path+"/"+oldname);
             File newfile=new File(path+"/"+newname);
             if(newfile.exists())// , 
                 System.out.println(newname+" !");
             else...{
                 oldfile.renameTo(newfile);
             }
         }         
     }

五.ファイルディレクトリの転送
転送ファイルディレクトリは、コピーされたファイルと同じではありません.コピーされたファイルは、コピーされた2つのディレクトリに存在し、転送ファイルディレクトリは転送されたもので、新しいディレクトリにのみ存在します.
public void changeDirectory(String filename,String oldpath,String newpath,boolean cover)...{
         if(!oldpath.equals(newpath))...{
             File oldfile=new File(oldpath+"/"+filename);
             File newfile=new File(newpath+"/"+filename);
             if(newfile.exists())...{// , 
                 if(cover)// 
                     oldfile.renameTo(newfile);
                 else
                     System.out.println(" :"+filename);
             }
             else...{
                 oldfile.renameTo(newfile);
             }
         }       
     }

六.ファイルを読みます.FileInputStreamでファイルを読み込む
public String FileInputStreamDemo(String path) throws IOException...{
         File file=new File(path);
         if(!file.exists()||file.isDirectory())
             throw new FileNotFoundException();
         FileInputStream fis=new FileInputStream(file);
         byte[] buf = new byte[1024];
         StringBuffer sb=new StringBuffer();
         while((fis.read(buf))!=-1)...{
             sb.append(new String(buf));    
             buf=new byte[1024];// , 
         }
         return sb.toString();
     }

2.BufferedReaderで読み取り、IOではBufferedReaderとBufferedWriterの方が効率的
 public String BufferedReaderDemo(String path) throws IOException...{
         File file=new File(path);
         if(!file.exists()||file.isDirectory())
             throw new FileNotFoundException();
         BufferedReader br=new BufferedReader(new FileReader(file));
         String temp=null;
         StringBuffer sb=new StringBuffer();
         temp=br.readLine();
         while(temp!=null)...{
             sb.append(temp+" ");
             temp=br.readLine();
         }
         return sb.toString();
     }

3.dom 4 jでxmlファイルを読み込む
public Document readXml(String path) throws DocumentException, IOException...{
         File file=new File(path);
         BufferedReader bufferedreader = new BufferedReader(new FileReader(file));
         SAXReader saxreader = new SAXReader();
         Document document = (Document)saxreader.read(bufferedreader);
         bufferedreader.close();
         return document;
     }

七.ファイル(フォルダ)の作成
1.フォルダの作成
  public void createDir(String path)...{
         File dir=new File(path);
         if(!dir.exists())
             dir.mkdir();
     }

2.新しいファイルの作成
public void createFile(String path,String filename) throws IOException...{
         File file=new File(path+"/"+filename);
         if(!file.exists())
             file.createNewFile();
     }

八.ファイル(ディレクトリ)1を削除します.ファイルの削除
 public void delFile(String path,String filename)...{
         File file=new File(path+"/"+filename);
         if(file.exists()&&file.isFile())
             file.delete();
     }

2.ディレクトリの削除
Fileクラスのdelete()メソッドを使用してディレクトリを削除する場合は、そのディレクトリの下にファイルまたはサブディレクトリがないことを保証する必要があります.そうしないと削除に失敗します.そのため、実際のアプリケーションでは、ディレクトリを削除し、そのディレクトリの下のすべてのサブディレクトリとファイルを再帰的に削除してから、ディレクトリを削除する必要があります.
public void delDir(String path)...{
         File dir=new File(path);
         if(dir.exists())...{
             File[] tmp=dir.listFiles();
             for(int i=0;i<tmp.length;i++)...{
                 if(tmp[i].isDirectory())...{
                     delDir(path+"/"+tmp[i].getName());
                 }
                 else...{
                     tmp[i].delete();
                 }
             }
             dir.delete();
         }
     }