我是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();
答案 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();