web-dev-qa-db-ja.com

ByteArrayInputStreamを取得し、その内容をファイルシステムにファイルとして保存するにはどうすればよいですか?

ByteArrayInputStreamの形式の画像があります。これを取得して、ファイルシステム内の場所に保存できるものにしたいと思います。

私は輪になって回っています、助けてくれませんか。

14
Ankur

すでにApacheを使用している場合 commons-io 、次の方法で実行できます。

 IOUtils.copy(byteArrayInputStream, new FileOutputStream(outputFileName));
19
Simon Nickerson
InputStream in = //your ByteArrayInputStream here
OutputStream out = new FileOutputStream("filename.jpg");

// Transfer bytes from in to out
byte[] buf = new byte[1024];
int len;
while ((len = in.read(buf)) > 0) {
    out.write(buf, 0, len);
}
in.close();
out.close();
7
maneesh

次のコードを使用できます。

ByteArrayInputStream input = getInputStream();
FileOutputStream output = new FileOutputStream(outputFilename);

int DEFAULT_BUFFER_SIZE = 1024;
byte[] buffer = new byte[DEFAULT_BUFFER_SIZE];
long count = 0;
int n = 0;

n = input.read(buffer, 0, DEFAULT_BUFFER_SIZE);

while (n >= 0) {
   output.write(buffer, 0, n);
   n = input.read(buffer, 0, DEFAULT_BUFFER_SIZE);
}
2
Gaurav Vaish