0

私はJavaで新しい....ファイル入力ストリームを使用してテキストファイルを読み込もうとしています。テキストを1行ずつ読んで文字列として設定します..今、文字列をバイトに変換したいと思います。しかし、数値形式の例外が発生しています..この問題の解決を手伝ってください。

FileInputStream fstream = new FileInputStream("C:/Users/data.txt");

          DataInputStream in = new DataInputStream(fstream);
          BufferedReader br = new BufferedReader(new InputStreamReader(in));
          byte[] bytes = null;
          String str;
          int i=0;

          while ((str = br.readLine()) != null) 
          {

              bytes[i] = Byte.parseByte(str,16);
              i++;
          }

          in.close();
4

4 に答える 4

2

試す

byte[] bytes = str.getBytes();

それ以外の

bytes[i] = Byte.parseByte(str,16);

また、InputStreamReader のエンコーディングを指定することをお勧めします。

BufferedReader br = new BufferedReader(new InputStreamReader(in, "UTF-8"));

Java String の長さと内部表現は C と同じではないことに注意してください。

于 2012-12-13T05:48:43.170 に答える
1

String クラスの getBytes() メソッドを使用するだけです。

str.getBytes()

または、デフォルトの文字セットを使用しない場合:

str.getBytes(myCharSet);
于 2012-12-13T05:50:15.017 に答える
0

このコードを試すことができます。

fstream = new FileInputStream("C:/Users/s.hussain/Desktop/test3.txt");


          DataInputStream in = new DataInputStream(fstream);
          BufferedReader br = new BufferedReader(new InputStreamReader(in));
          byte[] bytes = null;
          String str;
          int i=0;

          while ((str = br.readLine()) != null) 
          {

              bytes  = str.getBytes();
              i++;
              System.out.println(bytes.length);
          }

          in.close();
于 2012-12-13T06:00:19.203 に答える
0

あなたが使用することができます、

文字列をバイト配列に変換するstr.getBytes() 。

于 2012-12-13T05:57:29.003 に答える