Hadoop总结:在java中使用FileSystem的api读写数据(能力工场--小马哥原创)

//core包中fs.FileSystem
String uri = "hdfs://192.168.1.240:9000/";//注意协议
Configuration conf = new Configration();
FileSystem fs = FileSystem.get(URI.create(uri),configuration);
//(1)创建文件夹:在根目录下创建文件夹
String pathString = "/d1";
boolean existts = fs.exists(new Path(pathString)); //判断一下要创建的文件目录是否存在:返回值是一个布尔类型
if(!exists){
boolean result = fs.mkdirs(new Path(pathString)); //创建一个文件夹
System.out.println(result); //输出一下是否创建成功
}
//(2)写文件,我们可以想HDFS写入文件
String pathString = "/d1/f1";
FSDataOutputStream fsDataOutPutStream = fs.create(new Path(pathString)); //返回值是一个通向HDFS的输出流
//Hadoop的工具类
IOUtils.copyBytes(new ByteArrayInputStream("this is outputStream from Java").getBytes(),fsDataOutPutStream,configuration,true);
//(3)读文件,我们可以把刚才写入到HDFS中的文件读出来
String pathString = "/d1/f1";
FSDataInputStream fsDataInputStream =fs.open(new Path(pathStrin)); //返回值是一个通向该文件的输入流
IOUtils.copyBytes(fsDataInputStream,System.out,configuration,true);
//(4)查看目录列表和文件详细信息
String pathString = "/";
FileStatus[ ] listStatus = fs.listStatus(new Path(pathString));
for(FileStatus fileStatus : listStatus){
String type = fileStatus.isDir( )?"目录":"文件";
//输出测试....
}
//(5)删除文件或者目录
明天继续...


你可能感兴趣的:(hadoop,hdfs,NameNode,FileSystem)