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工具类:

Java代码 复制代码 收藏代码
  1. import java.util.regex.Matcher;
  2. import java.util.regex.Pattern;
  3. public class PatternUtils {
  4. // 截取数字
  5. public static String getNumbers(String content) {
  6. Pattern pattern = Pattern.compile("\\d+");
  7. Matcher matcher = pattern.matcher(content);
  8. while (matcher.find()) {
  9. return matcher.group(0).trim();
  10. }
  11. return "";
  12. }
  13. // 截取非数字
  14. public static String splitNotNumber(String content) {
  15. Pattern pattern = Pattern.compile("\\D+");
  16. Matcher matcher = pattern.matcher(content);
  17. while (matcher.find()) {
  18. return matcher.group(0).trim();
  19. }
  20. return "";
  21. }
  22. }

FileUtils:

Java代码 复制代码 收藏代码
  1. import java.io.BufferedReader;
  2. import java.io.BufferedWriter;
  3. import java.io.File;
  4. import java.io.FileInputStream;
  5. import java.io.FileOutputStream;
  6. import java.io.InputStreamReader;
  7. import java.io.OutputStreamWriter;
  8. import java.io.Writer;
  9. public class FileUtils {
  10. public static BufferedReader getBufferedReader(String filePath, String charset)throws Exception {
  11. // 文件字节流
  12. FileInputStream fis = new FileInputStream(filePath);
  13. // 字节流和字符流的桥梁,可以指定指定字符格式
  14. InputStreamReader isr = new InputStreamReader(fis, charset);
  15. // 将InputStreamReader 封装到缓冲流中,需要字符编码正确
  16. BufferedReader br = new BufferedReader(isr);
  17. return br;
  18. }
  19. public static BufferedWriter getBufferedWirtie(String filePath, String charset)throws Exception {
  20. File file = new File(filePath);
  21. if (!file.exists()) {
  22. file.createNewFile();
  23. }
  24. Writer ops = new OutputStreamWriter(new FileOutputStream(file), charset);
  25. BufferedWriter bw = new BufferedWriter(ops);
  26. return bw;
  27. }
  28. }  
原创粉丝点击
热门问题 老师的惩罚 人脸识别 我在镇武司摸鱼那些年 重生之率土为王 我在大康的咸鱼生活 盘龙之生命进化 天生仙种 凡人之先天五行 春回大明朝 姑娘不必设防,我是瞎子 土栽富贵竹发黄怎么办 富贵竹的黄叶子怎么办 土培富贵竹发黄怎么办 富贵竹根变黄了怎么办 富贵竹叶子尖发黄怎么办 富贵竹新叶子发黄怎么办 富贵竹杆变黄了怎么办 水培观音竹叶子发黄怎么办 富贵竹叶子根部发黄怎么办 观音竹叶子干了怎么办 富贵竹叶子发干怎么办 观音竹老叶发黄怎么办 发财树缺营养怎么办 富贵竹根部长芽怎么办 门口的竹子发黄怎么办 富贵竹长根了怎么办 水养竹子太长怎么办 海棠根腐烂了怎么办 水竹根腐烂了怎么办 水培富贵竹黑根怎么办 转运竹根部发黑怎么办 富贵竹跟泡烂怎么办 富贵竹根烂了怎么办 富贵竹的须变黑怎么办 泡富贵竹水发臭怎么办 富贵竹水变黑了怎么办 水观音叶子黄了怎么办 富贵竹根部腐烂发臭怎么办 富贵竹根部发粘怎么办 水竹草叶子发黄怎么办 水竹叶子心发黄怎么办 塔竹叶子发黄怎么办 铁树叶有发黄怎么办 铁树夏天叶发黄怎么办 铁树的叶尖发黄怎么办 铁树叶子发黄是怎么办 榕树盆景长蜜怎么办 六月雪叶子枯萎了怎么办 小叶冬青掉叶子怎么办 榕树叶子发黄落叶怎么办 榕树的叶子发黄怎么办