java:从InputStream读取时,空字符替换每个32768字符

时间:2014-01-22 16:02:04

标签: java null inputstream bufferedreader

我正在尝试从InputStream(从Mule SFTPInputStream开始)读取CSV文件。它适用于小文件。但是,如果它正在读取一个大文件,则每个第32768个字符将替换为空字符'\ 0'。

这弄乱了我的申请。为什么会这样?

BufferedReader br = null;
StringBuilder stringBuilder = new StringBuilder();

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

char[] chars = new char[4*1024];
int len;
while((len = br.read(chars))>=0) {
    stringBuilder.append(chars, 0, len);
}
String fileContents = stringBuilder.toString().trim();

更新:

我将文件上传到我的服务器。我检查了文件中是否有空字符,但没有。然后,我使用bash sftp命令将文件上传到SFTP。然后通过Mule自动从SFTP服务器读取文件,当我检查日志时,我可以看到空字符在那里。

当我通过sftp bash命令将文件传输到SFTP时,是否会添加空字符?

0 个答案:

没有答案