Java读写操作
来源:互联网 发布:域名服务器dns 编辑:程序博客网 时间:2024/06/05 02:06
今天女友让我统计一份数据,数据是一个txt的文件,里面每一行格式为“733026057 辽宁鞍山,上海上海,上海上海,”。需要的结果为“733026057;2; 上海上海[2];辽宁鞍山[1]"
以为自己能很快搞定,却半个小时才把代码搞定,那个⊙﹏⊙b汗呀!现在想想遇到的主要问题为:
(1)Java.io.*下的文件读写操作N久没写过了,上手慢了(原始文本编码方式为GB2312,必须处理编码)
(2)字符串处理有点耗时了,比如提取数字”733026057“,这个数字后面跟的不是空格,是使用”Tab“健生成的。最后使用模式匹配搞定。(这一块一种没仔细看,一定要抽空好好好学习一下 )
(3)Map做统计较好,但是按统计频率排序就不方便了,临时创建了一个MapSort,使用Collections.sort()完成排序。
特别说明:由于女友催的急,代码写的仓促,贴出来主要是提醒自己该提高了!java大侠们就忽略该文吧~
Pattern工具类:
- import java.util.regex.Matcher;
- import java.util.regex.Pattern;
- public class PatternUtils {
- // 截取数字
- public static String getNumbers(String content) {
- Pattern pattern = Pattern.compile("\\d+");
- Matcher matcher = pattern.matcher(content);
- while (matcher.find()) {
- return matcher.group(0).trim();
- }
- return "";
- }
- // 截取非数字
- public static String splitNotNumber(String content) {
- Pattern pattern = Pattern.compile("\\D+");
- Matcher matcher = pattern.matcher(content);
- while (matcher.find()) {
- return matcher.group(0).trim();
- }
- return "";
- }
- }
import java.util.regex.Matcher;import java.util.regex.Pattern;public class PatternUtils {// 截取数字public static String getNumbers(String content) {Pattern pattern = Pattern.compile("\\d+");Matcher matcher = pattern.matcher(content);while (matcher.find()) {return matcher.group(0).trim();}return "";}// 截取非数字public static String splitNotNumber(String content) {Pattern pattern = Pattern.compile("\\D+");Matcher matcher = pattern.matcher(content);while (matcher.find()) {return matcher.group(0).trim();}return "";}}
FileUtils:
- import java.io.BufferedReader;
- import java.io.BufferedWriter;
- import java.io.File;
- import java.io.FileInputStream;
- import java.io.FileOutputStream;
- import java.io.InputStreamReader;
- import java.io.OutputStreamWriter;
- import java.io.Writer;
- public class FileUtils {
- public static BufferedReader getBufferedReader(String filePath, String charset)throws Exception {
- // 文件字节流
- FileInputStream fis = new FileInputStream(filePath);
- // 字节流和字符流的桥梁,可以指定指定字符格式
- InputStreamReader isr = new InputStreamReader(fis, charset);
- // 将InputStreamReader 封装到缓冲流中,需要字符编码正确
- BufferedReader br = new BufferedReader(isr);
- return br;
- }
- public static BufferedWriter getBufferedWirtie(String filePath, String charset)throws Exception {
- File file = new File(filePath);
- if (!file.exists()) {
- file.createNewFile();
- }
- Writer ops = new OutputStreamWriter(new FileOutputStream(file), charset);
- BufferedWriter bw = new BufferedWriter(ops);
- return bw;
- }
- }
- JAVA读写操作
- java 读写文件操作
- java读写文件操作
- Java文件读写操作
- java的读写操作
- Java 二进制文件读写操作
- JAVA读写文件操作
- Java读写操作
- java文件读写操作
- Java文件读写操作
- java读写操作例子
- java文件读写操作
- java 文件读写 操作
- Java读写二进制文件操作
- java 文件读写操作
- Java-----IO读写操作
- JAVA读写文件操作
- java文件读写操作
- 思维正能量创造价值
- Response.Write后页面CSS部分失效的问题
- mysql查询语句
- 和我一起学 Selenium WebDriver(1)——入门篇
- Chrome:速度是第一要务
- Java读写操作
- Box2D v2.1.0用户手册翻译 - 目录,第01章 导言(Introduction)
- tslib-1.4的移植和应用
- 使用jsoup分析网页
- “没有错误”本身就是一个错误
- hdu 1010
- 转 Servlet生命周期与工作原理
- Q2_棋盘上的距离做题总结
- Java泛型-类型擦除