Java读取文件夹下的所有文件名和文件内容

读取文件夹下的所有文件名和文件内容

1. 读取指定目录下的每一个文件的文件名和文件内容
2. 并把文件名作为key,文件内容为value 存储在map集合中
3. 通过遍历map集合拿到我们需要的文件名和文件内容

**

/**
 * Java读取文件夹下的所有文件名和文件
 * @author Younger
 *
 */
public class ReadFile {
	
	public static void main(String[] args) {
		Map<String, String> map = getFilesDatas("E:\\a");
		for(String key : map.keySet()){
		    String value = map.get(key);
		    System.out.println("文件名:"+key+"   内容:"+value);
		}
	}

	/**
	 * 获取某文件夹下的文件名和文件内容,存入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[i].isFile()){
				try {//读取指定文件路径下的文件内容
					String fileDatas = readFile(filePathLists[i]);
					//把文件名作为key,文件内容为value 存储在map中
					files.put(fileNameLists[i], 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[1024];// 1kb
		//通过输入流使用read方法读取数据
		int len = is.read(bytes);
		//System.out.println("字节数:"+len);
		String str = null;
		while(len!=-1){
			//把数据转换为字符串
			str = new String(bytes, 0, len);
			//System.out.println(str);
			//继续进行读取
			len = is.read(bytes);
		}
		//释放资源
		is.close();
		return str;
	}
}

运行结果如图所示:
在这里插入图片描述

其中文件目录所示:
在这里插入图片描述

  • 8
    点赞
  • 63
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值