zoukankan      html  css  js  c++  java
  • Java底层代码实现多文件读取和写入

    需求

    ”E:/data/”目录下有四个文件夹,如下:

    1_thumb[1]

    每个文件夹下有几个.csv文件,如下:

    2_thumb

    将每个文件夹下的.csv文件合并成一个以该文件夹命名的.csv文件。

    做法

    找到“E:/data”这个目录,循环读取目录下的四个文件夹;

    针对每个文件夹,循环读取目录下的文件列表;

    将读取的文件写入要合并的文件中。

    代码

    public class FileOperation {
    	public static void main(String[] args) {
    		combine();
    	}
    	private static void combine() {
    		File files = new File("E:/data/");
    		String directory1[] =files.list();
    		for(int x=0;x<directory1.length;x++){
    			BufferedReader bufr = null;
    			BufferedWriter bufw = null;
    			try {	
    				FileWriter fw = new FileWriter("E:/data/"+directory1[x]+".csv",true);
    				bufw = new BufferedWriter(fw);	
    				File fs = new File("E:/data/"+directory1[x]);
    				String directory2[] = fs.list();
    				for(int i=0;i<directory2.length;i++){
    					File f = new File("E:/data/"+directory1[x]+"/"+directory2[i]);
    					FileInputStream fi = new FileInputStream(f);
    					InputStreamReader read = new InputStreamReader(fi, "GBK");
    					bufr = new BufferedReader(read);
    					String line = null;
    					while((line=bufr.readLine())!=null){
    						bufw.write(line);
    						bufw.newLine();
    						bufw.flush();
    					}
    					if(fi!=null)
    						fi.close();
    					if(read!=null)
    						read.close();
    				}
    			} catch (FileNotFoundException e) {
    				e.printStackTrace();
    			} catch (IOException e) {
    				e.printStackTrace();
    			} finally{
    				try {
    					if(bufr!=null)
    						bufr.close();
    					if(bufw!=null)
    						bufw.close();					
    				} catch (IOException e) {
    					e.printStackTrace();
    				}
    			}
    		}
    	}
    }

    该代码已解决中文乱码问题。

    小知识

    列出目录下所有内容:

    File files = new File("E:/data/");
    String directory[] =files.list();

    上述两行代码列出了”E:/data”目录下的所有内容。

  • 相关阅读:
    干净卸载mysql (注册表)
    计算机中丢失 MSVCR100.dll
    ORM框架SQLAlchemy学习笔记
    mac sourcetree required password
    ConstantBuffer
    Unity通用渲染管线Shader日志输出工具
    Unity SRP Batcher的工作原理
    Unity中的深度测试相关知识与问题
    渲染杂谈:early-z、z-culling、hi-z、z-perpass到底是什么?
    Unity Compute Shader入门初探
  • 原文地址:https://www.cnblogs.com/weilunhui/p/3836584.html
Copyright © 2011-2022 走看看