2013-10-25 2 views
0

사용자가 백업 파일의 이름을 지정하거나 선택할 수 있도록 JfileChooser를 사용하면서 선택한 파일의 백업 복사본을 만들어야합니다. 이 프로세스에서는 DataInputStream 및 DataOutputStream과 readByte 및 writeByte 메서드를 사용해야합니다. ,JFileChooser를 사용하여 백업 복사본 만들기

 DataInputStream dis = new DataInputStream(new FileInputStream(f)); 
     ByteArrayOutputStream buffer = new ByteArrayOutputStream(); 

     int nRead; 
     byte[] data = new byte[dis.available()]; 

     while ((nRead = dis.read(data, 0, data.length)) != -1) { 
      buffer.write(data, 0, nRead); 
     } 

     buffer.flush(); 

     ByteArrayOutputStream baos = new ByteArrayOutputStream(); 
     DataOutputStream dataOutStream = new DataOutputStream(baos); 
     dataOutStream.write(data); 

     OutputStream outputStream = new FileOutputStream("newFilePath"); 
     baos.writeTo(outputStream); 
     baos.close(); //Lets close some streams 
     dataOutStream.close(); 
     outputStream.close(); 
     buffer.close(); 
     dis.close(); 

어쩌면 짧은 해결책이 코드가 작동 aboves 뷰트 : 두 스트림을

public class BasicFile {   

    public BasicFile() throws FileNotFoundException, IOException{ 
     JFileChooser chooser = new JFileChooser(); 
     chooser.showOpenDialog(null); 
     File f = chooser.getSelectedFile();    
     if (f.isFile()) 
     { 
      DataInputStream dis = new DataInputStream(new FileInputStream(f)); 
     } 
    }   
} 
+0

기본적으로 한 파일을 읽고 다른 파일로 내용을 복사하고 싶습니다. 그렇습니까? 당신이 google을위한 견본의 짐이있다. – Matthias

+0

네, 선생님, 인터넷 검색을 시도했습니다. 정확히 어떻게 해야할지 정확히 모르겠습니다. – Manu

+0

다른 파일은 선택한 파일의 백업 복사본입니다. – Manu

답변

2

해결 방법 : 다음

내가 지금까지있는 것입니다.

요구 사항이 없으면 Files.copy 메쏘드가있는 단 한 줄에 불과합니다.

Files.copy (f.toPath(), 새로운 파일 ("newFilePath") toPath(), StandardCopyOption.REPLACE_EXISTING.);

+0

고마워요! 하지만 난이 – Manu

+0

datainputstream 및 dataoutputstream을 통합하는 방법을 이해해야합니다 내 요구 사항을 준수하기 위해 답변을 업데이 트되었습니다. – Akkusativobjekt

+0

고맙습니다. – Manu