如何用java实现不同编码方式字符串的转换(包含异常处理、重复不终止输入、缓冲区bufferedreader的使用)

问题:java 实现不同编码方式的字符串的转换 ,在程序中实现异常处理、重复不终止输入,缓冲区bufferedreader的使用。

比如 “utf-8”,”utf-16”,”gbk”,”gb2312”,”iso-8859-1”,”ascii”的互相转换

部分代码

public static void main(String[] args) throws IOException, WrongStringException, WrongChoiceException {
        BufferedReader in=null;  //缓冲区
        String sTemp="";   //暂存转换的结果
        int temp=-1;   //存储退出的方式 0、1(重来)、-1
        trans s=new trans();  //main中(static)必须要对类实例化

    while(true){    //程序循环输入要转换的代码
            if(temp==0) break; //实现反复输入,唯有temp==0才会从主循环退出
          System.out.println("Plese input the string you want to transform");
        try{
            in=null;
            in =new BufferedReader(new InputStreamReader(System.in));
            s.setAString(in.readLine());   //输入流
                    //唯有temp==0才会从主循环退出
            }
            catch(IOException e){
                    System.out.println(e);}     
            while(true){//输入选择哪种方法编码
                if(temp==0||temp==1) break;   
                System.out.println("Please input the [choice 1] numbers which 0-6 represent respectively default utf-8 utf-16  gbk  gb2312  iso-8859-1  ascii");
                try{
                    in=null;
                    in =new BufferedReader(new InputStreamReader(System.in));
                    s.setEncodingSign(Integer.parseInt(in.readLine()));  //输入流
                    s.stringEncoding();
                      //只有temp==0或者temp==1才会从循环退出
                while(true){//输入选择哪种方法解码
                    if(temp==0||temp==1) break;    //只有temp==0或者temp==1才会从循环退出
                    System.out.println("Please input the [choice 2] numbers which 0-6 represent respectively default utf-8 utf-16  gbk  gb2312  iso-8859-1  ascii");
                    try {
                        in=null;
                        in =new BufferedReader(new InputStreamReader(System.in));
                        s.setDecodingSign(Integer.parseInt(in.readLine()));  //输入流

                     }
                    catch(IOException e){
                        System.out.println("choice number is error!");}
                    //输出转换的结果
                    sTemp=s.stringDecoding(s.TranString);
                    System.out.println("The result of the translation is:"+sTemp);

                    while(true){//选择重来或退出
                        System.out.println("Please choose exit or again:");
                        try{

                            temp=s.ExitOrAgain();

                        if(temp==0||temp==1) break;     //只有temp==0或者temp==1才会从循环退出 
                        }
                        catch(IOException e){
                            System.out.println("exit error!");}
                        }

                             }

                                }
                catch(IOException e){
                    System.out.println("choice number is error!");}
                }

        }



        if(in!=null) 
            try {
                in.close(); }//检查文件是否关闭     
        catch(IOException e){
                System.out.println("文件关闭出错");}
        else{   System.out.print("退出成功!");//提示信息
            System.exit(0);
        }
 }
}

完整代码(包括实现类,异常处理)的源码

http://download.csdn.net/detail/immenselee/9801832

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值