我想把某个盘符下面的所有txt文件读出来,然后写到一个txt文件里,请问如何实现有人提过这样的问题,可惜帖子我找不到了,麻烦了!

解决方案 »

  1.   

    不是一个一个读吗
    读一行写一行,读到末尾换下一个文件也可以用环境中(windows linux)自带的命令
      

  2.   

    使用JAVAA中IO流技术,便可解决,如FileInputStream和FileOutputStream即可!!
      

  3.   

    循环读取所有txt 再写入一个文件
      

  4.   

    上面热心回复你的都不是人么?别就想着要答案,都告诉你io流了,还要如何。第一步:使用File类将所有的txt文件找出来。
    第二布:通过io流实现文件读写。
      

  5.   

    package com.xuz.datastruct.csdn;import java.io.File;public class FileTools { public static void main(String[] args) {
    File file = new File("d:/");
    fun(file);
    } private static void fun(File f) {
    if (f.isFile()) {
    if (f.getAbsolutePath().indexOf(".txt") != -1) {
    System.out.println(f.getName());
    }
    return ;
    } else {
    File[] list = f.listFiles();
    for (File file : list) {
    fun(file);
    }
    }
    }
    }
      

  6.   


    package com.hoo.utils;import java.io.BufferedReader;
    import java.io.BufferedWriter;
    import java.io.File;
    import java.io.FileReader;
    import java.io.FileWriter;
    import java.io.IOException;
    import java.util.ArrayList;
    import java.util.List;public class OperateFileUtils { /***************************************************************************
     * 在java中 路径/需要替换成\\ <b>function:</b> 功能
     * @createDate 2010-6-4 
     * @author hoo
     * @param file 替换的文件
     * @return 替换后的路径
     */
    private static String getAvailablePath(File file) {
    return file.getPath().replace('\\', '/');
    } /***************************************************************************
     * 返回某个文件夹下所有的文件 <b>function:</b> 功能
     * @createDate 2010-6-4 
     * @author hoo
     * @param fileList 找到的文件集合
     * @param path 路径
     * @param fileSuffix 要找的文件后缀
     */
    public static void getFiles(List<File> fileList, String path, String fileSuffix) {
    File file = new File(path);
    File[] files = file.listFiles();
    if (files == null) {
    return;
    } else {
    for (int i = 0; i < files.length; i++) {
    // 判断是否是文件夹
    if (files[i].isDirectory()) {
    // 递归调用getFiles方法,得到所有的文件
    getFiles(fileList, getAvailablePath(files[i]), fileSuffix);
    } else if (files[i].getName().lastIndexOf(fileSuffix) != -1) {// 只处理fileSuffix后缀的文档
    // copyFileAndAddPackageName(files[i]);
    fileList.add(files[i]);// 添加到文件集合中
    }
    // System.out.println(files[i].getAbsolutePath().replace('\\',
    // '/'));
    }
    }
    } /***************************************************************************
     * 把文件内容复制到指定文件中 <b>function:</b> 功能
     * @createDate 2010-6-4 
     * @author hoo
     * @param file 要操作的文件
     * @param toFile 保存的文件
     */
    public static void copyFile2TempFile(List<File> fileList, File toFile) {
    BufferedWriter bw = null;
    BufferedReader br = null;
    FileWriter fileWriter = null;
    FileReader fileReader = null;
    try {
    StringBuilder sb = new StringBuilder();
    String content = "";
    for (File textFile : fileList) {
    System.out.println(textFile.getName());
    fileReader = new FileReader(textFile);// 读取文件的内容
    br = new BufferedReader(fileReader);
    while ((content = br.readLine()) != null) {
    System.out.println(content);
    if (!content.trim().equals("")) {
    sb.append(content);// .append("\r");
    }
    }
    }
    fileWriter = new FileWriter(toFile);// 向文件中写入刚才读取文件中的内容
    bw = new BufferedWriter(fileWriter);
    bw.write(sb.toString());
    } catch (Exception e) {
    e.printStackTrace();
    } finally {
    try {
    bw.close();
    br.close();
    fileWriter.close();
    fileReader.close();
    } catch (IOException e) {
    e.printStackTrace();
    }
    }
    } /***************************************************************************
     * 读取单个文件 <b>function:</b> 功能
     * @createDate 2010-6-4 
     * @author hoo
     * @param file 读取内容的文件
     * @param toFile 保存后的文件
     */
    public static void copyFile2TempFile(File file, File toFile) {
    BufferedWriter bw = null;
    BufferedReader br = null;
    FileWriter fileWriter = null;
    FileReader fileReader = null;
    try {
    StringBuilder sb = new StringBuilder();
    String content = "";
    fileReader = new FileReader(file);// 读取文件的内容
    br = new BufferedReader(fileReader);
    while ((content = br.readLine()) != null) {
    System.out.println(content);
    if (!content.trim().equals("")) {
    sb.append(content);// .append("\r");
    }
    }
    fileWriter = new FileWriter(toFile);// 向文件中写入刚才读取文件中的内容
    bw = new BufferedWriter(fileWriter);
    bw.write(sb.toString());
    } catch (Exception e) {
    e.printStackTrace();
    } finally {
    try {
    bw.close();
    br.close();
    fileWriter.close();
    fileReader.close();
    } catch (IOException e) {
    e.printStackTrace();
    }
    }
    } public static void main(String[] args) {
    List<File> fileList = new ArrayList<File>();
    getFiles(fileList, "c:/txt_test", ".txt");
    getFiles(fileList, "c:/txt", ".txt");
    // 将读取的内容放入tempFile中
    File tempFile = new File("c:\\temp.txt");
    // copyFile2TempFile(fileList, tempFile);
    copyFile2TempFile(new File("c:\\a.txt"), tempFile);
    }
    }