我正在从文件中读取一个char数组,然后使用String构造函数将其转换为字符串.
read = fromSystem.read(b);
String s = new String(b);
Run Code Online (Sandbox Code Playgroud)
这个代码已经在程序中存在了很长时间并且工作正常,但是直到现在它已经读取了数组的完整大小,每次255个字符.现在我正在重复使用该类用于其他目的,并且它的读取大小各不相同.我遇到的问题是,如果它读取,比如说20个字符,然后是15个,那么前一个读取的最后5个仍然在字节数组中.为了解决这个问题,我在读完的内容中添加了一个空字符.
read = fromSystem.read(b);
if (read < bufferLength) {
b[read] = '\0';
}
String s = new String(b);
Run Code Online (Sandbox Code Playgroud)
如果我那么
System.out.println(b);
Run Code Online (Sandbox Code Playgroud)
它工作,缓冲区的结束不显示.但是,如果我将该字符串传递给消息对话框,那么它仍会显示.还有其他方法可以终止字符串吗?