需要指定编码格式!
UTF-8 OR GBK OR GB2312

解决方案 »

  1.   

    在JAVA中读取文件乱码的解决办法public static String encodin = "UTF8" 
    public static String encodout = "UTF8" 
    static void writeOutput(String str) { 
    try { 
    FileOutputStream fos = new FileOutputStream("test.txt"); 
    Writer out = new OutputStreamWriter(fos, encodout); 
    out.write(str); 
    out.close(); 
    } catch (IOException e) { 
    e.printStackTrace(); 


    static String readInput() { 
    StringBuffer buffer = new StringBuffer(); 
    try { 
    FileInputStream fis = new FileInputStream("test.txt"); 
    InputStreamReader isr = new InputStreamReader(fis, encodin); 
    Reader in = new BufferedReader(isr); 
    int ch; 
    while ((ch = in.read()) > -1) { 
    buffer.append((char)ch); 

    in.close(); 
    return buffer.toString(); 
    } catch (IOException e) { 
    e.printStackTrace(); 
    return null; 

    }
      

  2.   


    import java.io.FileInputStream;
    import java.io.FileOutputStream;
    import java.io.ObjectInputStream;
    import java.io.ObjectOutputStream;
    import java.io.Serializable;
    public class TestObjectIO { /**
     * @param args
     */
    public static void main(String[] args) {
    // TODO Auto-generated method stub

    try {



    FileOutputStream fos = new FileOutputStream("F:\\test.txt",true);
    ObjectOutputStream oos = new ObjectOutputStream(fos);
    oos.writeObject(new Test(12,"aaa"));
    oos.writeObject(new Test(13,"maijunjin"));

    FileInputStream fis = new FileInputStream("F:\\test.txt");
    ObjectInputStream ois = new ObjectInputStream(fis);
    while(ois.readObject() !=null)
    // System.out.println(ois.available());
    System.out.println((Test)ois.readObject());
    } catch (Exception e) {
    // TODO Auto-generated catch block
    e.printStackTrace();
    }finally{

    }

    }}
    class Test implements Serializable{
    private int testID;
    private String testName;
    public Test(int testID, String testName) {
    super();
    this.testID = testID;
    this.testName = testName;
    }
    @Override
    public String toString() {
    // TODO Auto-generated method stub
    return "testID:" + testID + " " + "testName:" + testName;
    }
    public int getTestID() {
    return testID;
    }
    public void setTestID(int testID) {
    this.testID = testID;
    }
    public String getTestName() {
    return testName;
    }
    public void setTestName(String testName) {
    this.testName = testName;
    }



    }
    不是什么格式的问题,本来你就是把一个序列化对象,里面保存的当然就不是什么数字字符
      

  3.   

    在ObjectInputStream ois=new ObjectInputStream(fis);的fis后面加上编码方式就报错了,我也试过