Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/file/3.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
将ANSI文件中的字节[]读入java程序时出现问题_Java_File_Io_Bufferedreader_Ansi - Fatal编程技术网

将ANSI文件中的字节[]读入java程序时出现问题

将ANSI文件中的字节[]读入java程序时出现问题,java,file,io,bufferedreader,ansi,Java,File,Io,Bufferedreader,Ansi,我正在尝试读取位于此处的数据文件: 在Java中转换为28x28图像以进行图像识别。但是,我在加载数据时遇到了一些问题。每个文件中有1000个28x28图像作为字符列表存储。当我在notepad++中打开文件时,它正确地显示每个文件中有784000个字符。然而,当我用java和BufferedReader或Scanner使用相同的ANSI编码读取它们时,它们的字符数会更少。确切的数字取决于它是哪个文件,但大约是782500。我手动比较了它们,发现我的java输出缺少几个控制字符,所以我假设它们是

我正在尝试读取位于此处的数据文件: 在Java中转换为28x28图像以进行图像识别。但是,我在加载数据时遇到了一些问题。每个文件中有1000个28x28图像作为字符列表存储。当我在notepad++中打开文件时,它正确地显示每个文件中有784000个字符。然而,当我用java和BufferedReader或Scanner使用相同的ANSI编码读取它们时,它们的字符数会更少。确切的数字取决于它是哪个文件,但大约是782500。我手动比较了它们,发现我的java输出缺少几个控制字符,所以我假设它们是不被读取的。我实际上不需要字符,只需要字符的无符号字节值。有人知道我怎样才能解决这个问题吗

示例代码:

int count = 0;
BufferedReader in = new BufferedReader(new InputStreamReader(
                                new FileInputStream(inputFile), "windows-1252"));
while((line=in.readLine())!=null)
{
    count+=line.length();
}
我的实际代码比这更复杂,但这应该计算字符数,并显示比实际数字低的数量,因为忽略了文件分隔符和数据链接转义等字符


谢谢你的帮助

Scanner和
BufferedReader
为您剥离行尾(回车和/或换行),只返回行内容。这些是唯一缺少的控制字符吗


如果需要行结尾,可以使用
InputStream::read
方法从文件中读取所有数据。还有其他方法可以做到这一点,例如使用内存映射文件和ByteBuffers,但您可能不需要类似的东西。

尝试使用ByteArrayInputStreamANSI?你是说ASCII码吗?还是Unicode?@EJP No,OP的意思是:注意关于与ANSI和ISO-8859-1混淆的评论。非常感谢你,你这个圣人,你在尝试了7个小时后才解开我的扣子。