当我尝试将ASCII值输出到文件时,有些字符会返回错误的值。例如:将Java ASCII输出到文件
import java.io.BufferedReader;
import java.io.File;
import java.io.FileOutputStream;
import java.io.FileReader;
import java.io.PrintWriter;
public class test {
public static void main(String args[]){
//Supposed to:
writeFile("./test.txt"); //write ASCII 147
readFile("./test.txt"); //read ASCII 147
}
public static boolean writeFile(String path){
try{
PrintWriter fo = new PrintWriter(new FileOutputStream(new File(path)));
fo.print((char) 147); //WRITES "?" TO FILE (ASCII 63, NOT 147)
fo.close();
}catch(Exception e){
return true;
}
return false;
}
public static boolean readFile(String path){
try {
BufferedReader fi = new BufferedReader(new FileReader(path));
char c[] = fi.readLine().toCharArray();
System.out.println((int) c[0]); //OBVIOUSLY PRINTS 63 INSTEAD OF 147
fi.close();
return true;
} catch (Exception e){
e.printStackTrace();
return false;
}
}
}
我在做什么错?任何帮助都会很棒。谢谢。
哇!谢谢你的回答。我一直在寻找一个星期,你在三十秒内为我解决了这个问题。再次感谢你! – Jason 2012-02-02 21:31:59