A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

背景介绍:
    十六期马上报名要截止了,十个测试题还没有交上去. 但是已经都写好了,不过是在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. }
复制代码

评分

参与人数 1技术分 +1 收起 理由
古银平 + 1 神马都是浮云

查看全部评分

6 个回复

倒序浏览
好厉害,顶一个。。
回复 使用道具 举报
LZ  真厉害  牛B
回复 使用道具 举报
学以致用,受教了
回复 使用道具 举报
这是一个编码问题么,linux是utf-8,我们的windows是GBK?
回复 使用道具 举报
陈迎春 来自手机 中级黑马 2013-1-5 11:11:09
地板
顶贴啊,厉害!来自: Android客户端
回复 使用道具 举报
牛B.顶一个!!
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马