java文件工具类
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.HashMap;
import java.util.List;
import java.util.Map; import org.apache.commons.io.FileUtils;
import org.apache.commons.io.LineIterator; /**
* 文件工具类
* 2017-05-12
*/
public class FileUtil { public static void createDir(String destDirName) {
File dir = new File(destDirName);
if (!dir.exists()) {// 判断目录是否存在
dir.mkdir();
//dir.mkdirs(); //多层目录需要调用mkdirs
}
} public static File writeToFile(String content, String filePath) throws IOException {
FileWriter fw = null;
BufferedWriter bw = null;
File file = null;
try {
file = new File(filePath);
if (!file.exists()) {
file.createNewFile();
}
fw = new FileWriter(file.getAbsoluteFile());
bw = new BufferedWriter(fw);
bw.write(content);
bw.flush();// 清空缓冲区
} catch (IOException e) {
e.printStackTrace();
} finally {
if(bw != null) {
bw.close();
}
if (fw != null) {
fw.close();
}
}
return file;
} public static List<String[]> readTxtFile(File file) {
LineIterator lineIterator = null;
List<String[]> list = null;
try {
lineIterator = FileUtils.lineIterator(file, "UTF-8");
list = new ArrayList<String[]>();
int lineNum = 0;
while (lineIterator.hasNext()) {
String line = lineIterator.nextLine();
// 行数据转换成数组
String[] custArray = line.split("\\|");
list.add(custArray);
lineNum++;
if (lineNum % 1000 ==0) {
Thread.sleep(10);
}
}
} catch (IOException e) {
e.printStackTrace();
} catch (InterruptedException e) {
e.printStackTrace();
} finally {
if (lineIterator != null) {
LineIterator.closeQuietly(lineIterator);
}
}
return list;
} /**
* 统计文件行数
* @param file
* @return
* @throws IOException
*/
public static int getTextLines(File file) throws IOException {
FileReader fr = new FileReader(file); //这里定义一个字符流的输入流的节点流,用于读取文件(一个字符一个字符的读取)
BufferedReader br = new BufferedReader(fr); // 在定义好的流基础上套接一个处理流,用于更加效率的读取文件(一行一行的读取)
int x = 0; // 用于统计行数,从0开始
while(br.readLine() != null) { // readLine()方法是按行读的,返回值是这行的内容
x++; // 每读一行,则变量x累加1
}
return x; //返回总的行数
} public static Map<String, Object> readBaofuTxtFile(File file) {
LineIterator lineIterator = null;
List[] list = null;
int startNum = 0;
Map<String, Object> map = new HashMap<String, Object>();
try {
lineIterator = FileUtils.lineIterator(file, "UTF-8");
list = new List[getTextLines(file)];
int lineNum = 0;
while (lineIterator.hasNext()) {
String line = lineIterator.nextLine();
// 行数据转换成数组
String[] custArray = line.split("\\|");
List<Object> rowData = new ArrayList<Object>();
for (int i = 0; i < custArray.length; i++) {
rowData.add(custArray[i]);
}
if ("商户号".equals(custArray[0])) {
startNum = lineNum + 1;
}
list[lineNum]=rowData;
lineNum++;
if (lineNum % 500 ==0) {
Thread.sleep(10);
}
}
} catch (IOException e) {
e.printStackTrace();
} catch (InterruptedException e) {
e.printStackTrace();
} finally {
if (lineIterator != null) {
LineIterator.closeQuietly(lineIterator);
}
}
map.put("data", list);
map.put("startLineNum", startNum);
return map;
} public static void main(String[] args) throws IOException {
/*String content = "This is the content to write into file";
String filePath = "c:/test/filename.txt";
writeToFile(content, filePath);*/
File file = new File("c:/test/fi_20170515132029.txt");
/*List list = readTxtFile(file);
if (list != null) {
for (int i = 0; i < list.size(); i++) {
String[] s = (String[]) list.get(i);
for (int j = 0; j < s.length; j++) {
System.out.println(s[j]);
}
}
}*/
/*Map<String, Object> map = readBaofuTxtFile(file);
List[] list = (List[]) map.get("data");
for (int i = 0; i < list.length; i++) {
System.out.println(list[i]);
}*/
}
}
java文件工具类的更多相关文章
- 一个简单的Java文件工具类
package com.xyworkroom.ntko.util; import java.io.File; import java.io.FileInputStream; import java.i ...
- 自动扫描FTP文件工具类 ScanFtp.java
package com.util; import java.io.BufferedInputStream; import java.io.BufferedOutputStream; import ja ...
- 读取Config文件工具类 PropertiesConfig.java
package com.util; import java.io.BufferedInputStream; import java.io.FileInputStream; import java.io ...
- Java 实现删除文件工具类
工具代码 package com.wangbo; import java.io.File; /** * 删除目录或文件工具类 * @author wangbo * @date 2017-04-11 1 ...
- Java常用工具类之删除文件
package com.wazn.learn.util; import java.io.File; /** * 删除文件工具类 * @author yangzhenyu * */ public cla ...
- Java常用工具类---IP工具类、File文件工具类
package com.jarvis.base.util; import java.io.IOException;import java.io.InputStreamReader;import jav ...
- java下载文件工具类
java下载文件工具类 package com.skjd.util; import java.io.BufferedInputStream; import java.io.BufferedOutput ...
- [转]Java常用工具类集合
转自:http://blog.csdn.net/justdb/article/details/8653166 数据库连接工具类——仅仅获得连接对象 ConnDB.java package com.ut ...
- Java Properties工具类详解
1.Java Properties工具类位于java.util.Properties,该工具类的使用极其简单方便.首先该类是继承自 Hashtable<Object,Object> 这就奠 ...
随机推荐
- MYSQL 查询方法 统计查询 链接查询 子查询
mysql表格查询方法: 查询: 1.简单查询 select * from Info --查所有数据select Code,Name from Info --查指定列的数据select Code as ...
- ubuntu 下安装redis
获取Redis 1.通过官网http://redis.io/获取稳定版源码包下载地址: 2.通过wget http://download.redis.io/releases/redis-3.0.2.t ...
- OpenFlow_tutorial_1_Introduce
tutorial出处:https://github.com/mininet/openflow-tutorial/wiki OpenFlow是用于远程控制交换机流表(forwarding tables) ...
- WM
#define WM_NULL 0x0000 #define WM_CREATE 0x0001 #define WM_DESTROY 0x0002 #define WM_MOVE 0x0003 #de ...
- Python飞机大战实例有感——pygame如何实现“切歌”以及多曲重奏?
目录 pygame如何实现"切歌"以及多曲重奏? 一.pygame实现切歌 初始化路径 尝试一 尝试二 尝试三 成功 总结 二.如何在python多线程顺序执行的情况下实现音乐和音 ...
- [LUOGU] P1113 杂物
题目描述 John的农场在给奶牛挤奶前有很多杂务要完成,每一项杂务都需要一定的时间来完成它.比如:他们要将奶牛集合起来,将他们赶进牛棚,为奶牛清洗乳房以及一些其它工作.尽早将所有杂务完成是必要的,因为 ...
- VIM命令大全(图+文)
在命令状态下对当前行用== (连按=两次), 或对多行用n==(n是自然数)表示自动缩进从当前行起的下面n行.你可以试试把代码缩进任意打乱再用n==排版,相当于一般IDE里的code format.使 ...
- Python 1-2模块的循环导入问题
run.py文件: import m1 # 第一次导入 # 验证解决方案一: ''' 正在导入m1 正在导入m2 ''' # print(m1.x) # print(m1.y) # 验证解决方案二: ...
- Python之基础练习题
Python之基础练习题 1.执行 Python 脚本的两种方式 2.简述位.字节的关系 解:8位是一个字节 3.简述 ascii.unicode.utf-8.gbk 的关系 4.请写出 “李杰” 分 ...
- MySQL数据库初识
认识数据库 1 什么是数据(Data) 描述事物的符号记录称为数据,描述事物的符号既可以是数字,也可以是文字.图片,图像.声音.语言等,数据由多种表现形式,它们都可以经过数字化后存入计算机 在计算机中 ...