JAVA 读取lzo压缩文件
2015-12-15 22:39
1796 查看
JAVA 读取lzo压缩文件
今天犯了一个愚蠢的问题,用lzo做过压缩的数据,用lzop去读,但疼痛了好一会儿。
lzopcode和lzocode的做个简单介绍:
1.lzocode压缩过的文件都是以.lzo_deflate结尾,相应的加载类:(com.hadoop.compression.lzo.LzoCodec)
2.zopcode压缩过的文件都以.lzo结尾(com.hadoop.compression.lzo.LzopCodec)
读取lzocode文件
private static Configuration conf = new Configuration(true);
private static FileSystem hdfs;
private static Class<?> codecClass ;
private static CompressionCodec codec;
static {
String path = "/usr/local/webserver/hadoop/etc/hadoop/";
conf.addResource(new Path(path + "core-site.xml"));
conf.addResource(new Path(path + "hdfs-site.xml"));
//加载解压lzo的class,对应的还有lzop的class
codecClass = Class.forName("com.hadoop.compression.lzo.LzoCodec");
codec = (CompressionCodec)ReflectionUtils.newInstance(codecClass, conf);
}
public List<String> readFile(String dir) {
InputStream input = null;
List<String> list = new LinkedList<String>();
try {
Path path = new Path(dir);
FileSystem hdfs = FileSystem.get(URI.create(dir),conf);
//获取hdsf上文件夹下面的文件
FileStatus[] fileStatus = hdfs.listStatus(path);
//遍历文件,逐一读取内容
for (int i = 0; i < fileStatus.length; i++) {
input = hdfs.open(new Path(fileStatus[i].getPath().toString()));
//解压缩流
input = codec.createInputStream(input);
list.addAll(IOUtils.readLines(input,"utf8"));
}
} catch (IOException e) {
e.printStackTrace();
}finally{
try {
if(input != null)
input.close();
hdfs.close();
} catch (IOException e) {
e.printStackTrace();
}
}
return list;
}
今天犯了一个愚蠢的问题,用lzo做过压缩的数据,用lzop去读,但疼痛了好一会儿。
lzopcode和lzocode的做个简单介绍:
1.lzocode压缩过的文件都是以.lzo_deflate结尾,相应的加载类:(com.hadoop.compression.lzo.LzoCodec)
2.zopcode压缩过的文件都以.lzo结尾(com.hadoop.compression.lzo.LzopCodec)
读取lzocode文件
private static Configuration conf = new Configuration(true);
private static FileSystem hdfs;
private static Class<?> codecClass ;
private static CompressionCodec codec;
static {
String path = "/usr/local/webserver/hadoop/etc/hadoop/";
conf.addResource(new Path(path + "core-site.xml"));
conf.addResource(new Path(path + "hdfs-site.xml"));
//加载解压lzo的class,对应的还有lzop的class
codecClass = Class.forName("com.hadoop.compression.lzo.LzoCodec");
codec = (CompressionCodec)ReflectionUtils.newInstance(codecClass, conf);
}
public List<String> readFile(String dir) {
InputStream input = null;
List<String> list = new LinkedList<String>();
try {
Path path = new Path(dir);
FileSystem hdfs = FileSystem.get(URI.create(dir),conf);
//获取hdsf上文件夹下面的文件
FileStatus[] fileStatus = hdfs.listStatus(path);
//遍历文件,逐一读取内容
for (int i = 0; i < fileStatus.length; i++) {
input = hdfs.open(new Path(fileStatus[i].getPath().toString()));
//解压缩流
input = codec.createInputStream(input);
list.addAll(IOUtils.readLines(input,"utf8"));
}
} catch (IOException e) {
e.printStackTrace();
}finally{
try {
if(input != null)
input.close();
hdfs.close();
} catch (IOException e) {
e.printStackTrace();
}
}
return list;
}
相关文章推荐
- java不解压读取linux服务器上的zip以及tar.gz压缩文件
- java解压缩文件和不解压读取压缩文件中的文本文件内容
- JAVA读取zip文件 JAVA读取压缩文件 解压zip里面的指定格式文件
- 随机读取lzo压缩文件的方法
- 用java中的java.util.zip包读取压缩文件
- java操作文件(压缩文件,导出zip,删除zip,写入文件,读取文件)
- java中不解压读取zip压缩文件
- Java采用readInt()方法直接读取特定的ZIP压缩文件出现了奇怪的问题
- java 压缩和解压lzo文件
- spark取得lzo压缩文件报错 java.lang.ClassNotFoundException: Class com.hadoop.compression.lzo.LzoCodec
- spark取得lzo压缩文件报错 java.lang.ClassNotFoundException
- java:按行读取服务器压缩文件内容
- Spark平台中,对lzo压缩文件的读取--Scala实现
- spark取得lzo压缩文件报错 java.lang.ClassNotFoundException: Class com.hadoop.compression.lzo.LzoCodec
- java读取zip文件和压缩zip文件
- java直接读取.zip压缩文件(一)
- java Zip压缩文件
- 项目开发中经常要用到的知识----Java读取.Properties,.Xml,.Ini文件(二)
- JAVA生成压缩文件
- JAVA/读取XML文件中SQLSERVER数据源配置(sax)