指点云用户90 发表于 2022-7-23 22:36:10

java获取所有文件夹名称,文件名称,文件内容

//输出代码
public void priviewCode(String codePath) {
    List<String> paths= traverseFolder1(codePath);
    for(String path:paths){
      File file=new File(path);
      if(file.isFile()){
            try {//读取指定文件路径下的文件内容
                String fileDatas = readFile(file);
                System.out.println(fileDatas);
}
public static List<String> traverseFolder1(String path) {
    List<String> paths=new ArrayList<>();
    int fileNum = 0, folderNum = 0;
    File file = new File(path);
    if (file.exists()) {
      LinkedList<File> list = new LinkedList<File>();
      File[] files = file.listFiles();
      for (File file2 : files) {
            if (file2.isDirectory()) {
                System.out.println("文件夹:" + file2.getAbsolutePath());
//                  paths.add(file2.getAbsolutePath());
                list.add(file2);
                folderNum++;
            } else {
                System.out.println("文件:" + file2.getAbsolutePath());
                paths.add(file2.getAbsolutePath());
                fileNum++;
            }
      }
      File temp_file;
      while (!list.isEmpty()) {
            temp_file = list.removeFirst();
            files = temp_file.listFiles();
            for (File file2 : files) {
                if (file2.isDirectory()) {
                  System.out.println("文件夹:" + file2.getAbsolutePath());
//                        paths.add(file2.getAbsolutePath());
                  list.add(file2);
                  folderNum++;
                } else {
                  System.out.println("文件:" + file2.getAbsolutePath());
                  paths.add(file2.getAbsolutePath());
                  fileNum++;
                }
            }
      }
    } else {
      System.out.println("文件不存在!");
    }
    System.out.println("文件夹共有:" + folderNum + ",文件共有:" + fileNum);
return paths;
}
/**
* 获取某文件夹下的文件名和文件内容,存入map集合中
* @param filePath 需要获取的文件的 路径
* @return 返回存储文件名和文件内容的map集合
*/
public static Map<String, String> getFilesDatas(String filePath){
    Map<String, String> files = new HashMap<>();
    File file = new File(filePath); //需要获取的文件的路径
    String[] fileNameLists = file.list(); //存储文件名的String数组
    File[] filePathLists = file.listFiles(); //存储文件路径的String数组
    for(int i=0;i<filePathLists.length;i++){
      if(filePathLists.isFile()){
            try {//读取指定文件路径下的文件内容
                String fileDatas = readFile(filePathLists);
                //把文件名作为key,文件内容为value 存储在map中
                files.put(fileNameLists, fileDatas);
            } catch (IOException e) {
                e.printStackTrace();
            }
      }
    }
    return files;
}
/**
* 读取指定目录下的文件
* @param path 文件的路径
* @return 文件内容
* @throws IOException
*/
public static String readFile(File path) throws IOException{
    //创建一个输入流对象
    InputStream is = new FileInputStream(path);
    //定义一个缓冲区
    byte[] bytes = new byte;// 1kb
    //通过输入流使用read方法读取数据
    int len = is.read(bytes);
    //System.out.println("字节数:"+len);
    String str ;
    StringBuilder stringBuilder = new StringBuilder();
    while(len!=-1){
      //把数据转换为字符串
      str = new String(bytes, 0, len);
      stringBuilder.append(str);
//            System.out.println(str);
      //继续进行读取
      len = is.read(bytes);
    }
    //释放资源
    is.close();
    return stringBuilder.toString();
}

页: [1]
查看完整版本: java获取所有文件夹名称,文件名称,文件内容