2016-08-15 9 views
-1

私はオブジェクトを持っていますが、このオブジェクトにはファイルを含むInputStreamがあります。InputStreamをファイルに書き込む

InputStreamの内部にあるものをフォルダ内のファイルに書きたいと思います。

コアJavaでこれを行うにはどうすればいいですか?

私は、BufferedReaderと.readLine()を使ってInputStreamの各行を印刷することができましたが、ファイル全体がディスクに書き込まれるようにしたいと思います。

うまくいけば、これは意味がある、ありがとう。あなたは、Java 7以上を使用している場合

+1

あなたがこれまでにしようとしているコードを追加してください。 –

答えて

5

あなたがjava.nio.file.Files使用することができます。

InputStream in = obj.getInputStrem(); 
Path file = ...; 
Files.copy(in, path); 

をまた異なるオプションがすでにそこにかなり確信して

1

CopyOptionStandardCopyOptionのような実装とLinkOptionを参照)をサポート、あなたはそれをGoogleにすることができます。しかし、あなたがたInputStream変数が「input」と名付けられていると仮定すると、フォルダ内のファイルへの書き込みについての質問として:

FileOutputStream output = null; 
try { 
    // Create folder (if it doesn't already exist) 
    File folder = new File("<path_to_folder>\\<folder_name>"); 
    if (!folder.exists()) { 
     folder.mkdirs(); 
    } 
    // Create output file 
    output = new FileOutputStream(new File(folder, "<file_name>")); 
    // Write data from input stream to output file. 
    int bytesRead = 0; 
    byte[] buffer = new byte[4096]; 
    while ((bytesRead = input.read(buffer)) != -1) { 
     output.write(buffer, 0, bytesRead); 
    } 
} catch (IOException ioex) { 
    ioex.printStackTrace(); 
} finally { 
    try { 
     if (output != null) { 
      output.close(); 
     } 
    } catch (IOException ioex) { 
     ioex.printStackTrace(); 
    } 
    // Also close InputStream if no longer needed. 
    try { 
     if (input != null) { 
      input.close(); 
     } 
    } catch (IOException ioex) { 
     ioex.printStackTrace(); 
    } 
} 
+0

ファイルアイコンなどをすべて書き込むのか、ファイルの内容だけを書き込むのでしょうか?私はグーグルでしたが、私はすべてそれで混乱していました、私は何ヶ月もここで質問していません。 – k1308517

+0

アイコンを含むすべてのものを書きます: ''にはアイコンが表示される拡張子、例えば "mytextfile.txt"やmp3オーディオファイル、 "song.mp3"などが含まれていなければなりません –

+0

''例えば 'C:\\ Users \\ \\ Desktop'と ' '、例えば' MyFolder' –

関連する問題