###前提・実現したいこと
前々回、前回の質問に関連する内容です。
InputStreamのデータを指定サイズ毎に分割することに成功しました。
前々回の中で頂いたご回答を参考にさせていただきました。
今回はその分割したデータをファイルシステムの中にファイルとして出力したいです。
データをByteArrayInputStreamのbyte[]型配列として取得するところまでは出来ています。
ByteArrayInputStream bais = new ByteArrayInputStream(data, 0, offset);
のところです。
このbaisを拡張子つきのファイルとしてファイルシステムの指定のフォルダ内に出力したいです。
理由は、分割されたファイルが破損していないか、などを確かめたいからです。
###該当のソースコード
public class InputStreamSplit { public static void main(String[] args) { // TODO 自動生成されたメソッド・スタブ File file = new File("C:/testdata.mp4"); try { InputStream inputStream; inputStream = new FileInputStream(file); splitAndOutput(inputStream); } catch (Exception e1) { // TODO 自動生成された catch ブロック e1.printStackTrace(); } } public static void splitAndOutput(InputStream in) throws IOException { int offset; int bytesRead; byte[] data = new byte[5242880]; boolean next; int outerLoop = 0; int innerLoop = 0; String renban = ""; do { offset = 0; // offsetのリセット Arrays.fill(data, (byte)0); next = false; while ((bytesRead = in.read(data, offset, data.length - offset)) != -1) { offset += bytesRead; innerLoop++; if (offset >= data.length) { System.out.println(data.length); next = true; break; } } if (offset >= 1) { ByteArrayInputStream bais = new ByteArrayInputStream(data, 0, offset); //ByteArrayInputStream bais = new ByteArrayInputStream(data); renban = String.format("%03d", outerLoop); // ここで bais を指定のディレクトリ配下にmp4ファイルとして出力したい() // その際、ファイル名が重複しないように、renbanをファイル名に付与する } outerLoop++; } while(next); } }
###試したこと
現状、ファイル出力の方法がわからず、止まっています。
些細な情報でも大変助かりますので、どうかよろしくお願いします。
回答2件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2017/10/20 01:48