0

バイトの読み取り (バイト [] として) とファイルからの文字列の行の読み取りを切り替える方法を探しています。FileInputStream を介してファイルから byte[] を取得でき、BufferedReader を介して String を取得できることはわかっていますが、両方を同時に使用すると問題が発生することがわかっています。バイトのセクションの長さを知っています。文字列のエンコーディングは、ファイルを書き込んだときから一定に保つことができます。ファイルタイプはまだ開発中のカスタム ファイルタイプなので、データの書き込み方法を変更できます。

javaで同じファイルから文字列とバイト[]を読み取るにはどうすればよいですか?

4

4 に答える 4

0

バッファリングされた入力ストリームからすべてをバイトとして読み取り、バイト配列を受け入れるコンストラクタを使用して文字列セクションを文字列に変換します。

 String string = new String(bytes, offset, length, "US-ASCII"); 

データが実際にどのようにエンコードされているかによって、「UTF-8」などをcharsetの名前として使用する必要がある場合があります。

于 2013-06-19T17:46:41.360 に答える
0

これを試してみませんか:

        BufferedReader bufferedReader = null;

        try {
            bufferedReader = new BufferedReader(new FileReader("testing.txt"));
            String line = bufferedReader.readLine();
            while(line != null){
                byte[] b = line.getBytes();
            }

        } finally {
            if(bufferedReader!=null){
                bufferedReader.close();
            }
        }

また

            FileInputStream in = null;
        BufferedReader bufferedReader = null;

        try {
            bufferedReader = new BufferedReader(new FileReader("xanadu.txt"));
            String line = bufferedReader.readLine();
            while(line != null){
                //read your line
            }
            in = new FileInputStream("xanadu.txt");
            int c;
            while ((c = in.read()) != -1) {
                //read your bytes (c)
            }


        } finally {
            if (in != null) {
                in.close();
            }
            if(bufferedReader!=null){
                bufferedReader.close();
            }
        }
于 2013-06-18T22:43:38.010 に答える