一件令人蛋疼的事
2016-04-09 23:08
531 查看
最近的时候, 因为完善了一下HXCrawler, 主要是其中的Log.java, Tools.java, 因此我想将HelloWorld项目中的所有使用”com.hx.util.Log”, “com.hx.util.Tools”替换为HXCrawler中的相关的类[crawler.util.Log, crawler.util.Tools]
so 写了如下脚本
然后 首先, 复制了两个文件到临时文件夹, 然后处理, 看了一下 处理没有什么问题,,,
然后 我将path配置为我的HelloWorld的项目路径, 然后 run
特么的, 就是这一run, 就导致了 我后面的三个小时的悲剧, 并且还会持续下去…
这一run啊,, 妈的 虽然起了作用, 也就是将”com.hx.util.Log” 替换为了”com.hx.crawler.Log”, 以及Tools, 但是 导致了一个更加严重的问题,,
部分”com.hx.util.Tools”的方法, 在”crawler.util.Tools”中没有, 所以 只能将部分包名重新改回去[这是运行之后三个小时悲剧的时间开销]
还有一个更可怕的地方在于, 产生了中文乱码,, so 意味着我的所有的宝贵的注释都没了,, 以及一些回忆[处理问题的过程中的体会].. 这个就是会持续下去的悲剧了,,
之后的时候, 只能够在回顾的时候, 重新添加注释了,, 以及部分打印的日志的内容,,[其中比较可惜的是, 相关算法, 数据结构[BTree, VEBTree, 字符串匹配等等]的内容, 以及一些工具]
附上现状 :
![](http://img.blog.csdn.net/20160409230735431)
其实开了十几个文件的时候, eclipse已经卡的不行了, 留到五十多个主要是为了, 记录一下这悲伤的记忆…
真是 踩了狗屎,, 为什么在tmp目录执行就没有乱码, 而在HelloWorld项目中却产生了乱码呢[项目文件是GBK编码, 而我的Tools中的默认字符集为UTF-8, 所以造成了经典的”锟斤拷”乱码问题, 然后以UTF-8持久化..[萌生了悲剧] ]
在写这种不可逆的文件操作的时候, 请记得一定要备份啊~!!
so 写了如下脚本
/** * file name : Test16UpdateReference.java * created at : 20:02:43 PM Apr 9, 2016 * created by 970655147 */ package com.hx.test11; public class Test16UpdateReference { // 卧槽 上一个这个脚本, 把我整惨了,, oh my所有的注释, 艹 public static void main(String[] args) throws Exception { File file = new File("C:\\Users\\970655147\\Desktop\\tmp"); FileFilter filter = new FileFilter() { @Override public boolean accept(File file) { return file.isDirectory() || file.getName().equals("Test01CrawlForBaiduBar" + Tools.JAVA); } }; Map<String, String> oldToNew = new HashMap<>(); oldToNew.put("import com.hx.util.Log;", "import com.hx.crawler.util.Log;"); oldToNew.put("import com.hx.util.Tools;", "import com.hx.crawler.util.Tools;"); updateReference(file, filter, oldToNew); // ----------- 乱码问题 --------------- // String srcCharSet = "gbk"; // String dstCharSet = "utf-8"; //// String str = "锟斤拷"; // String str = "刁刁叼"; // // Charset srcCS = Charset.forName(srcCharSet), dstCS = Charset.forName(dstCharSet); // Log.log(dstCS.decode(srcCS.encode(str)) ); } // 更新符合条件的文件的import引用 private static void updateReference(File file, FileFilter filter, Map<String, String> oldToNew) throws Exception { if(file.isFile() ) { List<String> lines = Tools.getContentWithList(file); StringBuilder sb = new StringBuilder(lines.size() * lines.get(0).length() ); for(String line : lines) { if(oldToNew.containsKey(line.trim()) ) { Tools.appendCRLF(sb, oldToNew.get(line) ); continue ; } Tools.appendCRLF(sb, line); } Tools.save(sb.toString(), file); } else { for(File childFile : file.listFiles(filter) ) { updateReference(childFile, filter, oldToNew); } } } }
然后 首先, 复制了两个文件到临时文件夹, 然后处理, 看了一下 处理没有什么问题,,,
然后 我将path配置为我的HelloWorld的项目路径, 然后 run
特么的, 就是这一run, 就导致了 我后面的三个小时的悲剧, 并且还会持续下去…
这一run啊,, 妈的 虽然起了作用, 也就是将”com.hx.util.Log” 替换为了”com.hx.crawler.Log”, 以及Tools, 但是 导致了一个更加严重的问题,,
部分”com.hx.util.Tools”的方法, 在”crawler.util.Tools”中没有, 所以 只能将部分包名重新改回去[这是运行之后三个小时悲剧的时间开销]
还有一个更可怕的地方在于, 产生了中文乱码,, so 意味着我的所有的宝贵的注释都没了,, 以及一些回忆[处理问题的过程中的体会].. 这个就是会持续下去的悲剧了,,
之后的时候, 只能够在回顾的时候, 重新添加注释了,, 以及部分打印的日志的内容,,[其中比较可惜的是, 相关算法, 数据结构[BTree, VEBTree, 字符串匹配等等]的内容, 以及一些工具]
附上现状 :
其实开了十几个文件的时候, eclipse已经卡的不行了, 留到五十多个主要是为了, 记录一下这悲伤的记忆…
真是 踩了狗屎,, 为什么在tmp目录执行就没有乱码, 而在HelloWorld项目中却产生了乱码呢[项目文件是GBK编码, 而我的Tools中的默认字符集为UTF-8, 所以造成了经典的”锟斤拷”乱码问题, 然后以UTF-8持久化..[萌生了悲剧] ]
在写这种不可逆的文件操作的时候, 请记得一定要备份啊~!!
相关文章推荐
- Linux非图形界面安装程序
- 【JS】:JS实现的一个网页输入然后输出加和的网页
- leetcode_309 Best Time to Buy and Sell Stock with Cooldown
- 《活着》读后感
- Scanner类的用法
- android intent使用总结
- JSP九大内置对象详解(总结+项目源码)
- nyoj 6 喷水装置(一)
- Android的Launcher程序(HOME)
- 【转载】GBDT(MART) 迭代决策树入门教程 | 简介
- spring AOP
- leetcode---Majority Element
- electron 打包web应用
- DICOM-RT:放疗系统的坐标系统DICOM-RT Coordinate System
- 栈溢出笔记1.1 函数调用过程
- JS中的全局变量
- 浅谈Android 的事件分发机制
- android 异常捕获系统收集
- ps -aux|grep 详细信息
- 结构体排序练习