我正在尝试从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时,是否会添加空字符?