介绍
小编给大家分享一下SequenceFile如何实现读写,希望大家阅读完这篇文章之后都有所收获、下面让我们一起去探讨吧!
<强> SequenceFile读强>
public static void main (String [], args), throws IOException { ,Configuration conf =, new 配置(); ,FileSystem fs =, FileSystem.get(设计); , ,Path seqFile =, new 路径(“/user/蜂巢/仓库/abc/seqfile.seq"); ,, ,SequenceFile.Reader reader =, new SequenceFile.Reader (fs, seqFile,,配置); , , ,IntWritable key =, new IntWritable (); ,Text value =, new 文本(); , , ,而(reader.next(键,值)){ System.out.println(关键); System.out.println(价值); ,} ,IOUtils.closeStream(读者); }
声明顺序文件的读者实例后,调用next()方法迭代读取记录。最后需要关闭读者实例。
如果键值对读取成功,则返回正确的;如果已经读到文件末尾,则返回错误的。
<强> SequenceFile写强>
public static void main (String [], args), throws IOException { Configuration conf =, new 配置(); FileSystem fs =, FileSystem.get(设计); Path targetPath =, new 路径(“/user/蜂巢/仓库/test_url"); 时间=final Option  optPath SequenceFile.Writer.file(定位路径); 时间=final Option  optKeyClass SequenceFile.Writer.keyClass (Text.class); 时间=final Option  optValueClass SequenceFile.Writer.valueClass (BytesWritable.class); final SequenceFile.Writer writer =, SequenceFile.createWriter (optPath,相依,还以为,optKeyClass, optValueClass); final Collection< File>, listFiles =, FileUtils.listFiles (new 文件(“/data1/url/?,, new String [] {“log"},,假); Text key =,空; BytesWritable value =,空; 时间:for (File File listFiles), { 时间=key new 文本(file.getPath ()); 时间=value new BytesWritable (FileUtils.readFileToByteArray(文件); writer.append(键,值); ,,,,} ,,,,,,,IOUtils.closeStream(作家); }
通过CreateWriter()静态方法创建SequenceFile对象,并返回SequenceFile。作家实例。
拥有SequenceFile。作家实例后,就可以通过append()方法在文件末尾追加数据。
最后关闭实例。
看完了这篇文章,相信你对“SequenceFile如何实现读写“有了一定的了解,如果想了解更多相关知识,欢迎关注行业资讯频道,感谢各位的阅读!