java中的字符串到字节转换

时间:2012-12-13 05:46:17

标签: java parsing byte

我是java的新手....我试图使用文件输入流来读取文本文件。我逐行阅读文本并设置为字符串..现在我想将字符串转换为字节。但我得到一个数字格式例外..请帮我解决这个问题。

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 个答案:

答案 0 :(得分:2)

尝试

byte[] bytes = str.getBytes();

而不是

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

我还建议为InputStreamReader指定编码:

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

请记住,Java字符串长度和内部表示与C不相同。

答案 1 :(得分:1)

您可以简单地使用String类中的getBytes()方法:

str.getBytes()

或者如果您不使用默认字符集:

str.getBytes(myCharSet);

答案 2 :(得分:0)

你可以使用,

str.getBytes(),它会将字符串转换为字节数组。

答案 3 :(得分: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();