Java底层代码实现多文件读取和写入
需求:
”E:/data/”目录下有四个文件夹,如下:

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

将每个文件夹下的.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”目录下的所有内容。
Java底层代码实现多文件读取和写入的更多相关文章
- Java底层代码实现单文件读取和写入(解决中文乱码问题)
需求: 将"E:/data/车站一次/阿坝藏族羌族自治州.csv"文件中的内容读取,写入到"E:/data//车站一次.csv". 代码: public cla ...
- Apache commons-io实现单文件读取和写入
Apache commons-io提供了很多类,这里只介绍FileUtils类. FileUtils类提供了一些操作文件对象的实用方法,包括文件的读取.写入.复制和比较等. 比如逐句读取和写入一个文件 ...
- python文件读取和写入案例
python文件读取和写入案例 直接上代码吧 都是说明 百度上找了很多,最终得出思路 没有直接可以读取修改的扩展,只能先读取,然后复制一份,然后在复制出来的文件里面追加保存 然后删除读的那个,但是缺 ...
- HDFS数据流-剖析文件读取及写入
HDFS数据流-剖析文件读取及写入 文件读取 1. 客户端通过调用FileSystem对象的open方法来打开希望读取的文件,对于HDFS来说,这个对象是分布式文件系统的一个实例.2. Distrib ...
- Java基础IO流 ,文件读取,由易至难
最基础的读取文件 import java.io.File;import java.io.FileInputStream;import java.io.FileNotFoundException;imp ...
- java===java基础学习(5)---文件读取,写入操作
文件的写入读取有很多方法,今天学到的是Scanner和PrintWriter 文件读取 Scanner in = new Scanner(Paths.get("file.txt") ...
- properties文件读取与写入
将peoperties文件的读取和写入封装成了一个工具类: import java.io.BufferedInputStream; import java.io.FileInputStream; im ...
- Delphi txt文件读取及写入
简介:Delphi支持三种文件类型:文本文件.记录文件.无类型文件.文本文件的读... 在进行win32开发中对文件的读写是最常用的操作之一 Delphi 支持三种文件类型: 文本文件.记录文件 ...
- MATLAB中TXT数据文件读取并写入元胞数组的方法与步骤
一. TXT数据文件读取 Data = load('train.txt'); %简单的文件读取,这时在工作区可以看到导入的大数据变量Data 二.大数据变量Data装入元胞数组中 D = cell ...
随机推荐
- iOS 后台定位审核被拒How to clarify the purpose of its use in the locatio
4.5 - Apps using background location services must provide a reason that clarifies the purpose of th ...
- PHP 关掉浏览器还会执行代码
ignore_user_abort();//关掉浏览器,PHP脚本也可以继续执行. set_time_limit(0);// 通过set_time_limit(0)可以让程序无限制的执行下去 $int ...
- Package java.sql
Provides the API for accessing and processing data stored in a data source (usually a relational dat ...
- Eclipse 悬浮提示
Eclipse 悬浮提示 使用悬浮提示 java 编辑器中包含了不同类型的悬浮提示,悬浮提示提供了鼠标指针指向元素的额外信息.所有java编辑器中相关的悬浮提示可以通过 preference(首选项) ...
- POJ3694-Network(Tarjan缩点+LCA)
题目链接 题意:给你一个连通图.然后再给你n个询问,每一个询问给一个点u,v表示加上u,v之后又多少个桥. 思路:用Tarjan缩点后,形成一棵树,所以树边都是桥了.然后增加边以后,查询LCA,LCA ...
- Unity3D学习笔记——NGUI之UIGrid
UIGrid:这个组件可以轻松的让你排列你的组件,并且在运行或是编辑的时候都可以. 效果图如下: 一:使用步骤 1.选择一个panel然后右键Create——Grid 2.为Grid创建几个子Spri ...
- 【BZOJ4771】七彩树 主席树+树链的并
[BZOJ4771]七彩树 Description 给定一棵n个点的有根树,编号依次为1到n,其中1号点是根节点.每个节点都被染上了某一种颜色,其中第i个节点的颜色为c[i].如果c[i]=c[j], ...
- Carries
Carries frog has nn integers a1,a2,…,ana1,a2,…,an, and she wants to add them pairwise. Unfortunately ...
- 第七课 nodejs请求响应
1 server.js 接收请求接收请求参数 和接收完成需要对request增加两个监听事件 var http = require('http');var url = require('url');f ...
- zend studio,操作记录
1.代码字体大小 打开Window->Preferences->General->Apperance-Colors and fonts->Structured Text Edi ...