探究在一个循环中,指定的下载文件在HDFS上不存在会怎么样,某次的循环异常会不会影响整体的循环。
HDFS上文件如下图:
代码贴上:
public static void test() throws Exception {
//本地保存路径
String downUrls = "D:/-------" ;
//操作目录文件路径
String fileHdfsUrls = "/uploadTest";
//hdfs链接地址
String hdfsUrls = "--------------";
// 创建文件夹
// Path path = new Path("/uploadTest");
// boolean mkdirs = fileSystem.mkdirs(path);
// if (mkdirs){
// System.out.println("chenggong");
// }else {
// System.out.println("shibai");
// }
//链接hdfs
FileSystem fileSystem = HDFSTool.getActiveFs(hdfsUrls);
System.out.println(fileSystem+"-------------------------------链接成功");
// RemoteIterator<LocatedFileStatus> iterator
// = fileSystem.listFiles(path, false);
// while (iterator.hasNext()) {
// LocatedFileStatus next = iterator.next();
// path = next.getPath();
// String name = path.getName();
// String hdfsFilePath = fileHdfsUrls + "/" + name;
// HDFSTool.download(fileSystem, hdfsFilePath, downUrls, false);
// }
String path = fileHdfsUrls + "/" + "test" + " " + "(2).txt";
// boolean delete = fileSystem.delete(new Path("/" + "test" + " " + "(2).txt"), true);
// if (delete){
// System.out.println("删除成功");
// }else {
// System.out.println("删除失败");
// }
//删除掉一个文件 还剩六个文件
HDFSTool.rm(fileSystem,path);
int a = 1;
for (int i = 0; i < 7; i++) {
String filePatnName = "test" + " " + "(" + a + ")" + "." + "txt";
String hdfsFilePath = fileHdfsUrls + "/" + filePatnName;
System.out.println(hdfsFilePath);
HDFSTool.download(fileSystem, hdfsFilePath, downUrls, false);
a++;
}
}
public static void main(String[] args) throws Exception {
test();
}
}
注:注释部分为链接hdfs 遍历获取文件名称拼接 下载所有文件
测试结果:
单词循环异常不会影响整体循环。文件可以下载下来。