在这里我们采取的是用BufferReader这个类来做这件事情,因为需求我需要将cs文件转换成Java文件 是pojo那一层哦,他们语法类似所以我就打算使用BufferReader去读取然后再对文件的内容根据一定规则进行更改,之前100多个类 自己手动去改属实嗦仔了哈哈哈,还好咱们老大给了我启发。为什么不自己写一个工具类呢 几秒钟100多个类全改完了。
因为规则还是比较多的 所以在这里,我强力推荐xmind
需求一列出来,这不清晰明了了
代码:
/**
* 对单个文件进行操作
* @param absolute
*/
public static void handlerFile(String absolute){
//读取文件内容
BufferedReader bufferedReader= null;
try {
StringBuffer stringBuffer=new StringBuffer();
FileInputStream inputStream = new FileInputStream(absolute);
bufferedReader = new BufferedReader(new InputStreamReader(inputStream));
//用来保存每一行的数据
String line;
line = bufferedReader.readLine();
while (line!=null){
stringBuffer.append(line);
stringBuffer.append("\n");
line = bufferedReader.readLine();
}
logger.info("-------------------line\n"+stringBuffer);
} catch (FileNotFoundException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}
这里咱们用到了一个StringBuffer哦,为什么咱们不用StringBuilder呢,这两者的选择也是一个常见的面试题哦,刚好有应用场景,所以在这里我讲一下。
首先,
StringBuffer,线程安全,同步
StringBuilder,线程不安全,非同步
这两者一对比,非同步,那当然更快啦 但是不安全嘛,结论就是StringBuffer 线程安全,但是效率低,StringBuilder线程不安全,效率高
回到咱们这个场景,咱们自己用来生成文件的 对性能也没啥要求 100多个文件也慢不到哪去,而且这些数据很重要,不能丢失 不然影响后面生成的Java 的实体类,所以在这里咱们选择StringBuffer。
效果:
看这不全读出来啦~