黑马程序员技术交流社区

标题: 视频不是白看的....解决了实际现实问题!! [打印本页]

作者: 嘿嘿小学徒    时间: 2013-1-5 00:20
标题: 视频不是白看的....解决了实际现实问题!!
背景介绍:
    十六期马上报名要截止了,十个测试题还没有交上去. 但是已经都写好了,不过是在Linux下开发完成的,当我拷到Windows系统中测试时,发现java文件没有换行不说,汉字注释全部乱码!
那么多换行,那么多注释 徒手修改得多大工作量啊..........但是! 毕老师的声音浮现在了耳边! 写了个工具类,实现了将Linux开发的文件转换为Windows下可以正常识别的文件!
代码如下(运行参数可以是一个文件的地址,也可以是多个文件的地址用空格隔开):
  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.IOException;
  7. import java.io.InputStreamReader;
  8. import java.io.OutputStreamWriter;

  9. public class FileConvert {

  10.     public static void main(String[] args) {
  11.         for(String s:args){
  12.             convert(s);
  13.         }
  14.     }
  15.     public static void convert(String filePath) {
  16.         
  17.         File fileA = new File(filePath);
  18.         File fileB=new File(filePath.replaceFirst("java", "javax"));
  19.         BufferedReader br=null;
  20.         BufferedWriter bw=null;
  21.         try {
  22.             FileInputStream fis = new FileInputStream(fileA);
  23.             InputStreamReader isr = new InputStreamReader(fis,"utf-8");
  24.             br= new BufferedReader(isr);
  25.             
  26.             
  27.             FileOutputStream fos=new FileOutputStream(fileB);
  28.             OutputStreamWriter osr=new OutputStreamWriter(fos,"GBK");
  29.             bw=new BufferedWriter(osr);
  30.             String buf;
  31.             while((buf=br.readLine())!=null){
  32.                 bw.write(buf);
  33.                 bw.newLine();
  34.             }
  35.         } catch (IOException e) {
  36.             e.printStackTrace();
  37.         } finally {
  38.             if (br != null) {
  39.                 try {
  40.                     br.close();
  41.                 } catch (IOException e) {
  42.                     e.printStackTrace();
  43.                 }
  44.             }
  45.             if (bw != null) {
  46.                 try {
  47.                     bw.close();
  48.                 } catch (IOException e) {
  49.                     e.printStackTrace();
  50.                 }
  51.             }
  52.         }
  53.     }

  54.   

  55.    
  56. }
复制代码

作者: 焦健    时间: 2013-1-5 00:34
好厉害,顶一个。。
作者: 张森    时间: 2013-1-5 01:49
LZ  真厉害  牛B
作者: 曹睿翔    时间: 2013-1-5 09:04
学以致用,受教了
作者: 冉世友    时间: 2013-1-5 10:58
这是一个编码问题么,linux是utf-8,我们的windows是GBK?
作者: 陈迎春    时间: 2013-1-5 11:11
顶贴啊,厉害!
作者: 崔政    时间: 2013-1-5 22:37
牛B.顶一个!!




欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2