Я пытаюсь загрузить некоторые данные в формате GZIP из ресурса в моем .jar, но я получаю сообщение в формате java.io.IOException: Not in GZIP
.
Когда я загружаю те же данные из файла, я нене получаю никакой ошибки.Зачем?(Это проект maven, который я компилирую с NetBeans)
Вот тестовый код, генерирующий проблему:
public static void main(String[] args) throws IOException {
byte[] dummy = new byte[10];
// Reading data from file
File f = new File("C:\\Temp\\422\\convert1900.data");
DataInputStream is = new DataInputStream(
new GZIPInputStream(new FileInputStream(f)));
while ( is.read(dummy) != -1 );
// Reading data from resource
InputStream ins = CompareTest2.class.getResourceAsStream(
"/net/cv/convert1900.data");
is = new DataInputStream(
new GZIPInputStream(ins)); // Issue happens here
while ( is.read(dummy) != -1 );
}
EDIT
Оба 'файлы имеют одинаковое содержимое.
РЕДАКТИРОВАТЬ 2
Я только что попытался подсчитать количество байтов, полученных обоими методами, используя следующий код:
public static void main(String[] args) throws IOException {
int total = 0;
int retr = 0;
byte[] dummy = new byte[10];
// Reading data from file
File f = new File("C:\\Temp\\422\\convert1900.data");
InputStream is = new FileInputStream(f);
do {
retr = is.read(dummy);
if ( retr != -1 )
total += retr;
} while ( retr != -1 );
System.out.println("Total file: " + total);
// Reading data from resource
InputStream ins = CompareTest2.class.getResourceAsStream(
"/net/cv/convert1900.data");
total = 0;
retr = 0;
do {
retr = ins.read(dummy);
if ( retr != -1 )
total += retr;
} while ( retr != -1 );
System.out.println("Total resource: " + total);
}
и Iget:
Total file: 9132744
Total resource: 16399085
Очень странно !!
РЕДАКТИРОВАТЬ 3
Я только что заметил, что размер ресурса в .jar равен 16399085(несжатый) вместо 9132744. Кажется, проблема в процессе компиляции.
Может быть, у меня есть проблема со следующим в моем pom.xml:
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-resources-plugin</artifactId>
<version>2.5</version>
<configuration>
<encoding>${project.build.sourceEncoding}</encoding> // UTF8
</configuration>
</plugin>