我试图用Java读取CSV文件。它已被GZIP压缩,我使用内置的GZIPInputStream
来读取CSV文件。用于读取文件的代码如下:
BufferedReader br = new BufferedReader(new InputStreamReader(new GZIPInputStream(new FileInputStream("xyz.csv.gz"))));
几天后,我使用zip
格式压缩了4个文件,它们位于名为xyz.zip
的文件夹中。注意:4个文件未单独压缩。正在以下列方式阅读此文件:
InputStream is = getClass().getResourceAsStream("xyz.zip");
ZipInputStream zipIs = new ZipInputStream(is);
ZipEntry ze = null;
while ((ze = zipIs.getNextEntry()) != null) {
String zipEntryFilename = ze.getName();
BufferedReader br = new BufferedReader(new InputStreamReader(zipIs));
while ((line = br.readLine()) != null) {
//assume that a csv file is being read.
//In this format, trailing commas are not removed.
}
我在这两种方法中发现的一个区别是GZIP在csv
文件中删除了尾随逗号,而在另一种情况下则没有发生同样的情况。
上面给出的两段代码显示了我如何使用InputStream
来阅读我感兴趣的文件。
这种行为背后的原因是什么?这是一个错误吗?