2016-04-05 3 views
1

を書き終えたのを待ちます(byte [])を使ってこの問題に取り組むか、他の方法で終了しますか? ファイルを見ると、前半は大丈夫です。後半の書き込みを開始すると、前半で終了します。バイト配列は良いです、私はそれらをテストしました。 コードの説明が必要な場合は、お気軽にお尋ねください。たFileOutputStream</p> <p>が.WRITEを待つためにどんな方法があります...私は多くのバイト[]の部分は、ファイルへの書き込みを持っており、これらの作品はちょっと大きいですし、私はバイトが混入していると思う

try (FileOutputStream fos = new FileOutputStream(Main.newFile)) { 
     for (int y = 0; y < piecesCount; y++) { 
      if (this.myList[y] == 1) { 
       fos.write(this.piecesArray.get(y).piece); 
       fos.flush(); 
       System.out.println("Im writing " + y + " piece"); 
      } else { 
       y--; 
      } 
     } 
     fos.close(); 
    } catch (FileNotFoundException ex) { 
    } catch (IOException | InterruptedException ex) { 
    } 
+1

が存在しなければならない。その場合には)大丈夫resourcesstatement – snovelli

+0

で試みを使用する場合、アドバイスをありがとう! – EasyCode

+0

私はあなたが 'fos.write 'への呼び出しが逐次的に起こっていないと思われると言います。安心して、彼らはあります。そして、あなたは 'fos.flush()'呼び出しを取り除くことができます。 – VGR

答えて

0

piecesCountlongであればよく、int y変数がオーバーフローし、アレイの最初の部分をwrtiting開始してもよいです。

これが当てはまらない場合は、このコードに記載されているような他のバグはありません。あなたが(fos.closeする必要はありません

にpiecesArray.get(y)を起こって何か.piece

+0

いいえ、piecesCountは整数で、1000を超えることはありません。したがって、彼がオーバーフローする可能性はないと思います – EasyCode

関連する問題

 関連する問題