Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/eclipse/8.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 使用fileinputstream从文件读取字节以查找丢失的图像_Java_Parsing_Io_Byte - Fatal编程技术网

Java 使用fileinputstream从文件读取字节以查找丢失的图像

Java 使用fileinputstream从文件读取字节以查找丢失的图像,java,parsing,io,byte,Java,Parsing,Io,Byte,我正在尝试读取.raw文件以查找一些“损坏”的图像。 我什么都试过了。 据我了解 以下几点应该有效 public void readFile(){ FileInputStream inFile = new FileInputStream(this.rawFile); System.out.println(inFile.read()); } 但只打印一个字节。我需要读取所有数据,查找255字节(表示新图像的开始),并将前255个字节的数据保存到.jpg,直到下一个255字节(下一个图像) 对不起

我正在尝试读取.raw文件以查找一些“损坏”的图像。 我什么都试过了。 据我了解 以下几点应该有效

public void readFile(){
FileInputStream inFile = new FileInputStream(this.rawFile);
System.out.println(inFile.read());
}
但只打印一个字节。我需要读取所有数据,查找255字节(表示新图像的开始),并将前255个字节的数据保存到.jpg,直到下一个255字节(下一个图像)

对不起,我这里不清楚

请提出任何问题。

您正在调用FileInputStream上的方法。此方法读取单个字节并返回它。从:

从该输入流读取一个字节的数据。如果没有可用的输入,此方法将阻止

你有两个选择

您可以继续一次读取一个字节,在这种情况下,您需要一个循环:

int read;

while ((read = inFile.read()) != -1)
{
  // process the byte
}
或者,您可以将文件的一块读入缓冲区,并使用在缓冲区上进行迭代

如果文件不是太大,您可以一次性将其读入内存

final byte[] buff = new byte[this.rawFile.length()];    // size the array
inFile.read(buff);                                      // read the whole file in
inFile.close();                                         // close the file descriptor

for (int i = 0; i < buff.length; i++)                   // search the in-memory buffer
{
  if (buff[i] == 0xFF)
  {
    // found marker byte ...
  }
}
final byte[]buff=新字节[this.rawFile.length()];//调整数组大小
填充读取(buff);//在中读取整个文件
infle.close();//关闭文件描述符
for(int i=0;i
read()返回一个intactually@vikiiii:您不正确-read()返回字节读取(转换为int),或-1返回EOF。您可能希望通过将字节写入ByteArrayOutputStream来处理该字节。这将允许您将一个图像中的所有字节保存为一个字节[]是否可以使用fileOutputStream执行此操作?另外,有人告诉我JPEG文件以字节255 216 255 224开始(这些是字节的整数格式)。一旦找到该序列,我如何使程序停止?@user1304317:只需查看缓冲区中的更多字节。这就足够你继续下去了吗?嗯,我找不到序列255 216 255 224我发现它们都在不同的地方,不是连续的