SequenceFile如何实现读写

  介绍

小编给大家分享一下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如何实现读写“有了一定的了解,如果想了解更多相关知识,欢迎关注行业资讯频道,感谢各位的阅读!

SequenceFile如何实现读写