首页 > 代码库 > HDFS 读取、写入、遍历目录获取文件全路径
HDFS 读取、写入、遍历目录获取文件全路径
1、从HDFS中读取数据
Configuration conf = getConf(); Path path = new Path(pathstr); FileSystem fs = FileSystem.get(conf); FSDataInputStream fsin= fs.open(path ); BufferedReader br =null; String line ; try{ br = new BufferedReader(new InputStreamReader(fsin)); while ((line = br.readLine()) != null) { System.out.println(line); } }finally{ br.close(); }
2、写HDFS
Configuration conf = getConf(); Path path = new Path(mid_sort); FileSystem fs = FileSystem.get(conf); FSDataOutputStream out = fs.create(resultpath); out.write(sb.toString().getBytes()); out.close();
3、遍历目录 获取文件 全路径
/** * 得到一个目录(不包括子目录)下的所有名字匹配上pattern的文件名 * @param fs * @param folderPath * @param pattern 用于匹配文件名的正则 * @return * @throws IOException */ public static List<Path> getFilesUnderFolder(FileSystem fs, Path folderPath, String pattern) throws IOException { List<Path> paths = new ArrayList<Path>(); if (fs.exists(folderPath)) { FileStatus[] fileStatus = fs.listStatus(folderPath); for (int i = 0; i < fileStatus.length; i++) { FileStatus fileStatu = fileStatus[i]; if (!fileStatu.isDir()) {//只要文件 Path oneFilePath = fileStatu.getPath(); if (pattern == null) { paths.add(oneFilePath); } else { if (oneFilePath.getName().contains(pattern)) { paths.add(oneFilePath); } } } } } return paths; }
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。