转载--java 读取本地和hdfs文件夹

package my.test;
import java.io.IOException;
import org.apache.hadoop.conf.Configuration;
 
import org.apache.hadoop.fs.FSDataInputStream;
import org.apache.hadoop.fs.FSDataOutputStream;
import org.apache.hadoop.fs.FileStatus;
import org.apache.hadoop.fs.FileSystem;
import org.apache.hadoop.fs.Path;
 
public class testhdfspaths {
	public static void main(String[] args) throws IOException {
		String sourceFile = "";
		String targetFile = "";
		if (args.length < 2) {
			sourceFile = "/home/zhouhh/test";
			targetFile = "hdfs://hadoop48:54310/user/zhouhh";
		} else {
			sourceFile = args[0];
			targetFile = args[1];
		}
		Configuration conf = new Configuration();
		FileSystem hdfs = FileSystem.get(conf);
		FileSystem local = FileSystem.getLocal(conf);
 
		try {
			visitPath(local,sourceFile);
			visitPath(hdfs,targetFile);
		} catch (IOException e) {
			e.printStackTrace();
		}
 
	}
 
	public static void visitPath(FileSystem fs,String path) throws IOException
	{
		Path inputDir = new Path(path);
		FileStatus[] inputFiles = fs.listStatus(inputDir);
		if(inputFiles==null)
		{
			throw new IOException(" the path is not correct:" + path);
		}
 
		System.out.println("----------------path:"+path+"----------------");
		for (int i = 0; i < inputFiles.length; i++) {
 
 
 
			if(inputFiles[i].isDir())
			{
				System.out.println(inputFiles[i].getPath().getName()+" -dir-");
				visitPath(fs,inputFiles[i].getPath().toString());
			}
			else
			{
				System.out.println(inputFiles[i].getPath().getName()+",len:"+inputFiles[i].getLen());
			}
 
		}
 
	}
 
}


 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值