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){}
заблокируйте и тщательно проверьте исключение трассировки стека.