Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/329.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

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/visual-studio/7.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 如何访问google cloud数据流中CompressedSource的每个条目?并获取每个子文件的字节[]_Java_Google Cloud Dataflow - Fatal编程技术网

Java 如何访问google cloud数据流中CompressedSource的每个条目?并获取每个子文件的字节[]

Java 如何访问google cloud数据流中CompressedSource的每个条目?并获取每个子文件的字节[],java,google-cloud-dataflow,Java,Google Cloud Dataflow,我有一个压缩文件,它是一个gzip文件,由google存储上的多个文本文件组成。我需要访问每个子文件并执行一些类似正则表达式的操作。 我可以像这样在本地计算机上做同样的事情 pubic static void untarFile( String filepath ) throw IOException { try { FileInputStream fin = new FileInputStream(filepath); BufferedInputStream in = ne

我有一个压缩文件,它是一个gzip文件,由google存储上的多个文本文件组成。我需要访问每个子文件并执行一些类似正则表达式的操作。 我可以像这样在本地计算机上做同样的事情

pubic static void untarFile( String filepath ) throw IOException {
  try {
    FileInputStream fin = new FileInputStream(filepath);
    BufferedInputStream in = new BufferedInputStream(fin);
    GzipCompressorInputStream gzIn = new GzipCompressorInputStream(in);
    TarArchiveInputStream tarInput = new TarArchiveInputStream(gzIn);
    TarArchiveEntry entry = null;
    while ((entry = (TarArchiveEntry) tarInput.getNextTarEntry() ) != null) {
    byte[] fileContent = new byte (int)entry.getSize() ];
    tarInput.read(fileContent, 0, fileContent.length);
    }
  }
}

因此,我可以对fileContent执行一些其他操作,即字节[]。所以我在google cloud dataflow上使用并引用了its。似乎我只能从文件中获取每个字节,而不是子文件的整个byet[],所以我想知道是否有任何解决方案可以在google cloud dataflow上实现这一点。

TextIO不直接支持这一点,但您可以创建一个新的子类来实现这一点。您需要重写isSplittable()以始终返回false,然后让readNextRecord()读取整个文件