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> 这就奠 ...
随机推荐
- axis2客户端的几种调用方式
(1)使用RPC方式调用WebService // 使用RPC方式调用WebService RPCServiceClient serviceClient = new RPCServiceClient( ...
- iOS定位--CoreLocation框架
CoreLocation框架的使用 // 首先导入头文件 #import <CoreLocation/CoreLocation.h> CoreLocation框架中所有数据类型的前缀都是C ...
- linux远程开机
它需要wakeonlan这个软件, 从何处得到它? 它的官方站是:http://sourceforge.net/projects/wake-on-lan/ 如果使用rpm包可以 ...
- Ubuntu-11.10中 vim和Gedit打开html文件中文乱码问题
解决vim中文乱码方法: 打开/etc/vim/vimrc 添加代码: set fileencodings=utf-8,gb2312,gbk,gb18030 set t ...
- What is state and props
State, in React component, is internal dataset which affects the rendering of the component. To some ...
- IP、CIDR、广播地址、子网掩码、MAC地址--这些是什么鬼
继续学习趣谈网络协议中的内容,认识几个专有名词,IP.CIDR.广播地址.子网掩码.MAC地址,这些都是什么鬼? 一.IP IP地址是一个网卡在网络世界的通讯地址,相当于我们现实世界的门牌号码 (1) ...
- 18mybatis
18mybatis-2018/08/02 1.mybatis标签 定义SQL语句 id :唯一的标识符 parameterType:传给此语句的参数的全路径名或别名例:com.test.poso.Us ...
- 算法竞赛入门经典5.2 STL初步
1. 排序和检索,学会使用sort排序,以及low_bound函数 Raju and Meena love to play with Marbles. They have got a lot of m ...
- php使用命名空间时自动加载机制
命名空间主要为了解决用户编写的代码与PHP内部的类/函数/常量或第三方类/函数/常量之间的名字冲突.不过并不是你定义了使用命名空间的类,就可以在任何地方随意使用了,需要在程序运行时将定义命名空间的类文 ...
- LINUX系统---初级相关操作和知识
LINUX系统的初级,从安装LINUX开始,到处理简单的运维问题.搭建各种服务.解决网路问题.缓解服务器压力,写简单的shell脚本. 我们从基本的入门开始搞事情: 安装LINUX系统 对磁盘的使用 ...