黑马程序员技术交流社区
标题:
求解释
[打印本页]
作者:
高阳
时间:
2012-12-26 22:01
标题:
求解释
public class ObjectOuputStreamDemo {
public static void main(String[] args) throws FileNotFoundException, IOException, ClassNotFoundException {
Write();
Read();
}
private static void Read() throws IOException, IOException, ClassNotFoundException {
ObjectInputStream oi=new ObjectInputStream(new FileInputStream("d:\\12.txt"));
ArrayList<Person> ect = (ArrayList<Person>)oi.readObject();
for(Person arr: ect){
System.out.println(arr.getAge()+"***"+arr.getName());
}
oi.close();
}
//如果不用集合,会报异常,无法解决,只能try,catch
private static void Write() throws FileNotFoundException, IOException {
ObjectOutputStream os=new ObjectOutputStream(new FileOutputStream("d:\\12.txt"));
Scanner sc=new Scanner(System.in);
ArrayList<Person>array=new ArrayList<Person>();
for(int i=1;i<=3;i++){
System.out.println("请输入第"+i+"个学生的姓名");
String name=sc.nextLine();
System.out.println("请输入第"+i+"个学生的年龄");
int age=Integer.parseInt(sc.nextLine());
Person p=new Person(name,age);
array.add(p);
}
os.writeObject(array);
//b=true;
os.close();
}
}
作者:
高阳
时间:
2012-12-26 22:03
我还没打问题呢,怎么发出去了,
是不是用什么对象写入的,读取就要用什么对象来接收?
作者:
高阳
时间:
2012-12-26 22:05
还有,怎么解决写入文件时乱码的问题啊
作者:
高阳
时间:
2012-12-27 14:03
为什么没人回答啊,老师呢
作者:
郭俊
时间:
2012-12-27 14:39
1,写入什么对象,读取就要用什么对象来接收! 你想啊,加入你存的是Teacher,取的时候用Student,能取吗,答案是否定的。
2,至于第二个乱码的问题,则是存取文本文件或者字节流(mp3,jpg等)的问题了。
从你代码可以看出你存的是Person那就没必要用Object,直接都用泛型<Person>就好。
写入文件,因为存的是文本文件,就直接用
BufferedWriter bw = new BufferedWriter(new FileWriter("d:\\12.txt")); 遍历不用了吧
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2