Привет всем, у меня проблема с Java.Для моего старшего научного класса я почти закончил, но мне просто нужно проанализировать некоторые данные в изображениях, которые я сгенерировал.Я не хочу отмечать это как домашнее задание, потому что оно не является частью какого-либо обязательного задания ... это то, что я придумал самостоятельно, чтобы собрать результаты.Я написал программу, которая сравнивает два изображения попиксельно.Это делается для всех файлов .bmp в двух каталогах.Теперь моя программа считывает имена файлов в массив String, и я проверил значения всех имен файлов, поэтому я знаю, что с каталогами и именами файлов обращаются нормально изначально.Вот проблемный код:
public static void main(String[]args) throws IOException
{
File actualDir = new File("C:\\Users\\Rowe\\Desktop\\testExpect");
String actualFiles[] = actualDir.list();
File expectedDir = new File("C:\\Users\\Rowe\\Desktop\\testExpect2");
String expectedFiles[] = expectedDir.list();
int[][] stats = new int[actualFiles.length][6]; // Holds all info
//Columns, Rows, Total, redMatches, shouldaBeenRed, badRed
for(int i = 0; i < actualFiles.length; i++)
{
BufferedImage actualImage = null;
System.out.println(actualFiles[i]); //THIS PRINTS PROPERLY
System.out.println(System.getProperty("user.dir")); //FOR TESTING
actualImage = ImageIO.read(new File("C:\\Users\\Rowe\\Desktop\\testExpect\\"+actualFiles[i])); //ERROR HERE
BufferedImage expectedImage = null;
expectedImage = ImageIO.read(new File("C:\\Users\\Rowe\\Desktop\\testExpect2\\"+expectedFiles[i])); //THIS IMAGE WORKS
...rest of code
Теперь, когда я изменяю каталоги на одинаковые, программа запускается и обнаруживает, что все пиксели похожи на 100% (какдолжно, так что я знаю, что программа делает то, что я хочу, чтобы она делала).Вот ошибка:
Exception in thread "main" javax.imageio.IIOException: Can't read input file!
at javax.imageio.ImageIO.read(Unknown Source)
at PixelCompare.main(PixelCompare.java:22)
Я пробовал разные каталоги безрезультатно.Это может быть что-то о файлах .bmp?Что может заставить один набор BMP читать нормально, а другой не работать?Я могу открыть все необходимые файлы в других программах, чтобы они не были повреждены.Все свойства кажутся одинаковыми.Один каталог был создан вручную в Gimp (они хорошо читаются), а другой был создан программой на основе Java.Их можно читать в Gimp, Paint, Photoshop и т. Д., Но они не будут читаться в моем коде.
Любая помощь очень ценится, спасибо!
Редактировать: Забыл использовать перевернутый код... Я облажался с ним, а затем опубликовал плохую версию.Пересмотрено, чтобы показать оригинальную проблему с тем, что в противном случае является функциональным кодом.Для дальнейшего описания проблемы: если вы изменили обе директории для поиска в папке testExpect2 списка файлов в Ожидаемые файлы [], он будет работать успешно.Кроме того, System.out.println(actualFiles[i]
печатает правильное имя файла до возникновения ошибки, поэтому я знаю, что правильный файл читается в массив String.