package shb.java.testIo;

import java.io.BufferedReader;
import java.io.BufferedWriter;
import java.io.File;
import java.io.FileReader;
import java.io.FileWriter;
import java.io.Writer;
import java.util.HashMap; /**
* File类操作(此代码效率不是很高———>输出格式有欠缺。功能还是可以实现的,仅仅是饭后茶凉小憩一下)
* @Package:shb.java.testIo
* @Description:遍历文件夹下所有文件,对于有内容的文件,保存其内容并输出至指定文本文件,最后输出的是map集合。
* @author shaobn
* @Date 2015-9-6上午11:34:53
*/
public class demo1 {
public static void main(String[] args) throws Exception {
File dir = new File("D:\\testRemove");
File target = new File("D:\\target.txt");
BufferedWriter bw = new BufferedWriter(new FileWriter(target));
HashMap<String, String> map = new HashMap<String,String>();
method1(dir,bw,map);
method3(map.toString(), bw);
}
// 遍历文件夹下所有文件,对于有内容的文件全部写到一个文本文件中。
public static void method1(File dir,Writer writer,HashMap<String,String> map){
File[] files = dir.listFiles();
for(File file:files){
if(file.isDirectory()){
method1(file, writer,map);
}else {
if(file.length()!=0){
map.put(file.getName(), method2(file));
}
} } }
//读取文件里面的内容
public static String method2(File file){
BufferedReader br = null;
StringBuffer sb = new StringBuffer();
try {
br = new BufferedReader(new FileReader(file));
String line = null;
while((line = br.readLine())!=null){
sb.append(line);
}
} catch (Exception e) {
// TODO: handle exception
e.printStackTrace();
}finally{
try {
if(br!=null){
br.close();
}
} catch (Exception e2) {
// TODO: handle exception
e2.printStackTrace();
}
}
return sb.toString(); }
//将读取的路径以及相应的内容写入指定的文件
public static void method3(String str,Writer writer){
try {
writer.write(str);
} catch (Exception e) {
// TODO: handle exception
}finally{ try {
if(writer!=null)
writer.close();
} catch (Exception e2) {
// TODO: handle exception
e2.printStackTrace();
}
} }
}

如有错误,望大家纠正一下。

JAVA实现File类中的遍历操作并输出内容的更多相关文章

  1. java.io.File类

    java.io.File类 1.凡是与输入.输出相关的类.接口等都定义在java.io包下 2.File是一个类.能够有构造器创建其对象.此对象相应着一个文件(.txt .avi .doc .ppt ...

  2. Java学习:File类中的过滤器接口

    javaIO类的File类应用:过滤器接口 FilenameFilter和FileFilter都是用来过滤文件的 例如: 过滤以.jpg或者.java结尾的文件. 通过看他们的源码: 通过使用File ...

  3. Java 之 File类(文件操作)

    一.概述 java.io.File 类是文件和目录路径名册抽象表示,主要用于文件和目录的创建.查找和删除等操作. File类是一个与系统无关的类,任何的操作系统都可以使用这个类中的方法. 路径问题: ...

  4. java.io.File类操作

    一.java.io.File类 String path="E:/222/aaa";//路径 String path1="aaa.txt"; File file= ...

  5. Java分享笔记:File类中常用方法的介绍

    java.io包下的File类用于描述和创建一个文件或文件夹对象,只能对文件或文件夹做一些简单操作,不能修改文件的内容,功能比较有限.下面是对于File类中常用方法的程序演示. [1] 演示程序一 p ...

  6. Java中 IO类 - File类中的判断功能

    package com.hxzy.IOSer;import java.io.*;public class Demo05 { public static void main(String[] args) ...

  7. Java之File类

    一.初见File类 java.io.File类代表系统中的文件(文件或目录) 常用构造方法 File(String pathname) File(String parent, String child ...

  8. 33.JAVA编程思想——JAVA IO File类

    33.JAVA编程思想--JAVA IO File类 RandomAccessFile用于包括了已知长度记录的文件.以便我们能用 seek()从一条记录移至还有一条:然后读取或改动那些记录. 各记录的 ...

  9. 小白学Java:File类

    目录 小白学Java:File类 不同风格的分隔符 绝对与相对路径 File类常用方法 常用构造器 创建方法 判断方法 获取方法 命名方法 删除方法 小白学Java:File类 我们可以知道,存储在程 ...

随机推荐

  1. 【android学习1】:安装MySQL启动服务失败解决方法

    最近需要用到MySQL,从官网上下载了一个安装文件,但是安装时一直弹出如下提示信息: Configuration of MySQL Server 5.7 is taking longer than e ...

  2. 设计模式:职责链模式(Chain Of Responsibility)

    定  义:使多个对象都有机会处理请求,从而避免请求的发送者和接受者之间的耦合关系.将这些对象连成一条链,并沿着这条链传递请求,直到有一个对象处理它为止. 结构图: 处理请求类: //抽象处理类 abs ...

  3. Linux下对各种压缩文件处理

    Linux下最常用的打包程序就是tar了,使用tar程序打出来的包我们常称为tar包,tar包文件的命令通常都是以.tar结尾的.生成tar包后,就可以用其它的程序来进 行压缩了,所以首先就来讲讲ta ...

  4. 生成uid的算法

    private function _getUid() { //2013-01-01 00:00:00 (timestamp-microtime) $startTime= 1356969600000; ...

  5. [转]获得 LayoutInflater 实例的三种方式

    转自:http://www.cnblogs.com/androidez/archive/2013/07/01/3164729.html 获得 LayoutInflater 实例的三种方式   在实际开 ...

  6. offset/client/scroll一些总结

    offset/client/scroll一些总结 1.offset 首先offset共有五个值 1.offsetParent 2.offsetTop 3.offsetLeft 4.offsetWidt ...

  7. 输出Java的GC信息

    -verbose:gc -XX:+printGC 可以打印GC的简要信息 [GC 4790K->374K(15872K), 0.0001606 secs] [GC 4790K->374K( ...

  8. 经过各种坑之后centos+ uwsgi + nginx +django 终于配好了

    https://pypi.python.org/pypi/setuptools#downloads https://www.python.org/ftp/python/ 开机 加入 uwsgi ngi ...

  9. 敏捷BI——岂止于快

    信息爆炸的时代,唯有分析快,才可以把握住可能分分钟流失的数据信息,唯有钻取深,才可以挖掘出海量信息中蕴藏的财富.是时候为您的企业上一套敏捷BI了. [敏捷BI的产生背景] 传统BI由IT人员做报表,业 ...

  10. linux操作技巧

    1. 打开终端 ctrl+ALT+T  新终端 ctrl+shift+T  原有终端新页面 2.  忘记root密码  redhat下 单用户进入grub 在核心文件后加"single&qu ...