FileWriter выдает число для исключения

                if (bsave == e.getSource()) {
        path=null;
        try {
            getpath();
        } catch(Exception ee) {
            JOptionPane ss=new JOptionPane();
            ss.showMessageDialog(this,"Something wrong with the path....maybe Chinese name....");
        }
        if (path==null) return ;
        setTitle(path);
        try {
            File file=new File(path);   
            if(!file.exists()) file.createNewFile(); 
            FileWriter fw = new FileWriter(path,true);
            BufferedWriter bw = new BufferedWriter(fw);
            String myreadline=textf.getText();
            if (ty==0) {
                if (fw==null) System.out.println(fw);
                System.out.println(ty);
                bw.write(myreadline);
            } if (ty==1) {
                int len=myreadline.length();
                for (int i=0;i<len;i+=8) {
                    bw.write((char) chan.parseInt(myreadline.substring(i,i+7),2));
                }
            } else {
                int len=myreadline.length();
                for (int i=0;i<len;i+=2)
                    bw.write((char) chan.parseInt(myreadline.substring(i,i+1),16));
            }
            br.close();  
            fr.close();
        } catch(Exception e0) {
            System.out.println(e0.toString());
        }           
    }   

В общем, это так... Но как вывести "0", так должно быть?

java.lang.NumberFormatException : для входной строки: "T" "

Строка myreadline это начать с "T", так что попробуйте изменить его в число... во время записи? Я действительно запутался..

1 ответ

Как прокомментировано в посте выше, FileWriter не будет бросать NumberFormatException, Проверьте свой код вокруг bw.write((char) chan.parseInt(myreadline.substring(i,i+7),2));, Здесь вы анализируете из строки в целое число.

Самый простой способ отладки - заключить такие строки в try-catch(RuntimeException){} заблокируйте и тщательно проверьте исключение трассировки стека.

Другие вопросы по тегам