笔试题中常见的文件操作

最近笔试,碰见蛮多文件操作的题目,也没有好好记API,乱写一通。遂整理一下。


遍历文件目录,获取所有文件(包括子目录下的),然后依次读取文件中的内容,并打印出来。

	public static void readFile(String path)throws IOException{
		File file = new File(path);
		ArrayList<File> files = new ArrayList<File>();
		getFiles(file, files);
	//	System.out.println(files);
		for(File f: files){
			BufferedReader rb = null;
			try {
				rb = new BufferedReader(new FileReader(f));
				while(rb.readLine() != null){
					System.out.println(rb.readLine());
				}
			} catch (FileNotFoundException e) {
				e.printStackTrace();
			}finally{
				rb.close();
			}
		}				
	}
	
	public static void getFiles(File file, ArrayList<File> files){
		if(file.isDirectory()){
			File[] fs = file.listFiles();
			for(File f: fs){
				getFiles(f, files);
			}
		}else{
			files.add(file);
		}	
	}


统计文件中各单词的个数:

	public static void calculateWords(String path) throws IOException{
		BufferedReader rb = null;
		try {
			rb = new BufferedReader(new FileReader(new File(path)));
			HashMap<String, Integer> words_num = new HashMap<String, Integer>();
			String line = null;
			while((line = rb.readLine()) != null){
				if(line.contains(" ")){
					String[] words = line.split(" ");
					for(String word : words){
						Integer num = words_num.get(word);
						words_num.put(word, (num == null ? 1 : num+1));
					}
				}				
			}
			Iterator it = words_num.keySet().iterator();
			while(it.hasNext()){
				String word = (String)it.next();
				System.out.println(word + " : " + words_num.get(word));
			}
			
		} catch (FileNotFoundException e) {
			e.printStackTrace();
		}finally{
			rb.close();
		}
	}



  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值