0

そのため、バイト ストリームを使用してテキスト ファイルに 0 ~ 100000 の一連の整数値を書き込み、正しい形式で格納されていることを確認しました。入力ストリームを使用して数値を表示しようとしています。私はいくつかの方法を試しましたが、出力する数値が正しくないたびに、どこが間違っているのか、または入力ストリームを読み取る別の方法についてアイデアを持っている人はいますか?

import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.IOException;
import java.nio.ByteBuffer;
import java.util.Random;


public class Question1ByteStream {
    public static void main(String[] args) throws IOException {
        //************************************************************
        //WRITING TO THE FILE

        FileOutputStream out = null;
        try {
            out = new FileOutputStream("ByteOutStream.txt");
            for(int i = 0; i < 10000; i ++){
                Integer randomNumber = randInt(0, 100000);
                byte[] bytes = ByteBuffer.allocate(4).putInt(randomNumber).array();
                out.write(bytes);
            }
        }finally{
            if (out != null) {
                out.close();
            }
        }
        //***********************************************************
        //READING BACK FROM THE FILE

        FileInputStream in = null;

        try {
            in = new FileInputStream("ByteOutStream.txt");
            int c;

            while ((c = in.read()) != -1) {
                out.write(c);
            }
        } finally {
            if (in != null) {
                in.close();
            } 
        }

    }

    //***************************************************************
    public static int randInt(int min, int max) {
        Random rand = new Random();
        int randomNum = rand.nextInt((max - min) + 1) + min;

        return randomNum;
    }
}
4

1 に答える 1

1

DataInputStream.readInt() を使用します。

DataOutputStream.writeInt() を使用すると、整数をより簡単に書き込むことができます。読み取りと書き込みの両方で、データ ストリームとファイル ストリームの間でバッファ ストリームを使用します。

于 2014-05-11T16:54:33.650 に答える