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> 这就奠 ...
随机推荐
- leetcode:single-number-ii(Java位运算)
题目 Given an array of integers, every element appears three times except for one. Find that single on ...
- Dynamic type checking and runtime type information
动态类型的关键是将动态对象与实际类型信息绑定. See also: Dynamic programming language and Interpreted language Dynamic type ...
- vim里面搜索字符串
直接在命令模式/+字符串就能搜索到,查找下一个,按“n”
- JavaSE-14 异常处理
学习要点 使用try-catch-finally处理异常 使用throw.throws抛出异常 异常及其分类 log4j记录日志 异常 1 异常的定义 异常是指在程序的运行过程中所发生的不正常的事件 ...
- 查找BUG的方法
1)测试环境 1)代码调试 2)问题重现 3)思考问题所在 2)生产环境 1)思考 2)测试本地环境是否存在问题 3)打开日志查看 4)思考是否是数据原因 5)拷贝数据到本地进行重现 3)未知错误 1 ...
- Tomcat的配置方法(解压版)
Tomcat解压版虽然不用安装,但是死难配!!之前刚学的时候很是郁闷了一阵,Jsp倒还好,但是Servlet死活跑不起来.今天就把你给记下来!! 解压到C:/Tomcat 然后再配置环境变量: 添加三 ...
- PyCharm 自动添加作者及时间
打开pycharm,快捷键ctrl + alt + s 打开模板设置自己所需内容 完整打开路径:file>settings>editor>code style>file and ...
- JS判断字符串包含的方法
本文实例讲述了JS判断字符串包含的方法.分享给大家供大家参考.具体如下: 1. 例子: 1 2 3 4 5 6 7 8 var tempStr = "tempText" ; var ...
- 51nod 1057 n的阶乘 (压位优化)
题目地址:http://www.51nod.com/onlineJudge/questionCode.html#!problemId=1057&judgeId=605203 使用压位进行优化, ...
- wamp下mysql错误提示乱码的解法
出处:http://blog.csdn.net/jsship/article/details/42914217 运行mysql命令时,出现的错误提示是乱码 : [Err] 1064 - Erre ...