FileOutputStreamをFileInputStreamに変換する最も簡単な方法は何ですか(コードは素晴らしいでしょう)?FileOutputStream into FileInputStream
答えて
これはあなたを助けるかもしれない:
はhttp://ostermiller.org/convert_java_outputstream_inputstream.html
この記事では、3つの可能性に言及している:
- は再び
- 使用パイプ
- それを読んでバイト配列に完全な出力を書き込みます循環バイトバッファ(そのページでホストされているライブラリの一部)を使用してください。 それを他の方法でラウンド(出力への入力)を行うだけで、参照のための210
、:
は、Apache CommonsのIOとの簡単な解決策は次のようになります。
IOUtils.copyLarge(InputStream, OutputStream)
またはちょうどあなたの場合ファイルをコピーしたい:
FileUtils.copyFile(inFile,outFile);
Apache Commons IOを使用したくない場合は、あなたが与えられた@Thomas例を使用できる場合
public static long copyLarge(InputStream input, OutputStream output) throws IOException
{
byte[] buffer = new byte[4096];
long count = 0L;
int n = 0;
while (-1 != (n = input.read(buffer))) {
output.write(buffer, 0, n);
count += n;
}
return count;
}
リンクは壊れていますが、ここでも元の回答を見つけることができます: https://web.archive.org/web /20110929161214/http://ostermiller.org/convert_java_outputstream_inputstream.html – GregT
、そうでない場合はあなたが行うことができます:copyLarge
法Tませ
として:java2s.com
EDITから
import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.InputStream;
import java.io.OutputStream;
public class FileInputOutputExample {
public static void main(String[] args) throws Exception {
InputStream is = new FileInputStream("in.txt");
OutputStream os = new FileOutputStream("out.txt");
int c;
while ((c = is.read()) != -1) {
System.out.print((char) c);
os.write(c);
}
is.close();
os.close();
}
}
例@トーマスは彼の答えを削除しました、私はこれを処理するためのリファレンスコモンズIOアプローチを追加するだけです:
IOUtils.copy(InputStream is, OutputStream os)
書き込み後(ディスクへのフラッシュなし)の内容を読み込めるようにするには、ByteArrayOutputStreamとByteArrayInputStreamを使用します。 ByteArrayOutputStreamへの書き込みが終了すると、基礎となるバイトデータを取得し、ByteArrayInputStreamを使用してそれを読み戻すことができます。
ByteArrayOutputStream outStream = new ByteArrayOutputStream();
// do any output onto outStream you need
ByteArrayInputStream inStream = new ByteArrayInputStream(outStream.toByteArray());
// you can read back the output with inStream now
バッファー(プロデューサー/コンシューマータイプの問題)が必要な場合は、javaのnioパッケージに付属のバッファーを調べてください。
私はFileOutputStreamを受け取ります。私が欲しいのはそれを読むことです。
あなたは確かにOutputStream
から読むことができません。私はあなたが書いているファイルからFileOutputStream
によって読むことを意味していると思います。私はあなたがそれを行うこともできるとは思わない。 FileOutputStream
は、書き込まれるファイルへの参照を保持していないようです。あなたがする必要がどのような
はFile
またはパス(String
)はFileOutputStream
に渡されたものを発見し、新しいFileInputStream
を作成するために、その同じFile
またはString
を使用しています。
私は彼がFileDescriptorを得るためにFileOutputStream.getFD()を使うことができたと思います。その周囲にFileInputStreamを構築するよりも。あなたが同じFileDescriptorから同時に読み書きできるかどうかは分かりません。 –
@ S.L.Barth:良い点、私は実際にそれを見ていましたが、 'FileInputStream'は' FileDescriptor'を取るコンストラクタを持っているという事実を見逃しました。 –
- 1. FileInputStreamとFileOutputStreamをffmpegに渡してトランスコードする(JAVE-Javaオーディオビデオエンコーディングを使用)
- 2. FileOutputStreamとByteArrayOutputStream
- 3. android FileInputStreamがクラッシュする
- 4. FileInputStreamとObjectInputStream
- 5. FileWriterとJavaのFileOutputStream
- 6. のJavaのFileOutputStreamは
- 7. コンストラクタXSSFWorkbook(FileInputStreamには)
- 8. Char into into byte? (Java)の
- 9. Android FileInputStream read()txtファイルから文字列
- 10. FileOutputStreamからファイルを作成
- 11. HOWTOは遅延FileInputStreamをファイルオープン
- 12. FileInputStreamのClassPathResource対整合性
- 13. MySQL INSERT INTOテーブルVALUE .. INSERT INTOテーブルSET
- 14. SELECT INTO not working
- 15. SQL:INSERT INTO ... VALUES..SELECT
- 16. INSERT INTO失敗
- 17. SELECT * INTO OUTFILEディレクトリ
- 18. Argv - String into Integer
- 19. SQL:フレーバーINSERT INTO
- 20. hibernate insert into select
- 21. PHP ' - >' into '。'
- 22. SQL Server:EXISTS(SELECT INTO)
- 23. WPF app into ASP
- 24. webclient 401 into c#
- 25. python singleton into multiprocessing
- 26. JSON into Django
- 27. ステートメント 'insert into
- 28. facebook wall into application
- 29. Mod_rewrite /category.htm into/category
- 30. json string into array?
あなたはここで何を求めているのか理解していますか? 「変換する」とは何を意味しますか?彼らは基本的に反対のものです。 1つは読書用であり、もう1つは書込み用です。 'FileOutputStream'で書いているファイルを読み込もうとしていますか? –
正確に何をしたいですか? FileOutputStreamはファイルに書き込みを行い、FileInputStreamはファイルから読み込みます。私は、前者が後者にどのように変換できるのか見当たりません。 –
私はFileOutputStreamを受け取ります。私が欲しいのはそれを読むことです。 – Pen