Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/303.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
java:从InputStream读取时,空字符替换每32768个字符_Java_Null_Inputstream_Bufferedreader - Fatal编程技术网

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

java:从InputStream读取时,空字符替换每32768个字符,java,null,inputstream,bufferedreader,Java,Null,Inputstream,Bufferedreader,我正在尝试从InputStream(从Mule SFTPInputStream生成)读取CSV文件。它适用于小文件。但是,如果它正在读取一个大文件,则每32768个字符将替换为一个空字符“\0” 这把我的申请搞砸了。为什么会这样 BufferedReader br = null; StringBuilder stringBuilder = new StringBuilder(); br = new BufferedReader(new InputStreamReader(inputStream

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

您首先有多确定该文件是否正确写入?对该文件执行十六进制转储以验证它是否已包含空字符您可以始终编写代码来处理该情况Jon:有些确定。我已签入notepad++并启用“显示所有字符”。原始文件中没有空字符。。但是在后处理的文件中有。史蒂夫:我在上做了一个十六进制转储,但是我怎么知道它是否包含null?我应该在十六进制转储中搜索什么?戴西:是的。那将是我最后的选择。