java作业-通讯录,无数据库,写入数据时出现乱码 需要指定编码格式!UTF-8 OR GBK OR GB2312 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 在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; } } 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; } }不是什么格式的问题,本来你就是把一个序列化对象,里面保存的当然就不是什么数字字符 在ObjectInputStream ois=new ObjectInputStream(fis);的fis后面加上编码方式就报错了,我也试过 jxl cell行列值获取 struts1与struts2谁能够清楚的解说里面的区别呢? 关于数据查询某部分时间段数据问题? 关于java一个简单语法问题<K,V> 关于病毒 求助一个问题 ? 如何调用父类的父类中被覆盖的方法? 窗体中实现滚动条的问题 一道面试题,求各位给下思路 欢迎大家下载我的软件,下载者有分. 跪求java知识点 SwingWorker 问题
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;
}
}
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;
}
}
不是什么格式的问题,本来你就是把一个序列化对象,里面保存的当然就不是什么数字字符