package aaaa;
import java.io.File;
import java.io.FileInputStream;
import java.io.ObjectInputStream;
import java.io.Serializable;
import java.util.ArrayList;public class shiyan {
public static void main(String[] args) {
File wenjian=new File("d:\\aaa.txt");
ArrayList<lei> shuzu=new ArrayList<lei>();
if (!wenjian.exists())
{
System.out.println("文件不存在!");
return;
}
try{
FileInputStream duqu = new FileInputStream(wenjian);
ObjectInputStream duqua = new ObjectInputStream(duqu); while(duqu.available()>0) //为什么把这里改成duqua.available()>0就不行了?
{
shuzu.add((lei)duqua.readObject());
} for (int i=0;i<shuzu.size();i++)
{
System.out.println(shuzu.get(i).getage());
System.out.println(shuzu.get(i).getname());
} }catch(Exception e)
{
System.out.println("出错了!");
}
}
}class lei implements Serializable
{
public lei(String name,int age)
{
this.name=name;
this.age=age;
} private String name;
private int age; public String getname()
{
return this.name;
} public int getage()
{
return this.age;
}
}上面是我练习ObjectinputStream写的代码。我有一个问题。就是把
while(duqu.available()>0) 改成
while(duqua.available()>0) 为什么就读不出来了?
这两个有什么区别么 不都是返回可读的字节数么? 谢谢了!
import java.io.File;
import java.io.FileInputStream;
import java.io.ObjectInputStream;
import java.io.Serializable;
import java.util.ArrayList;public class shiyan {
public static void main(String[] args) {
File wenjian=new File("d:\\aaa.txt");
ArrayList<lei> shuzu=new ArrayList<lei>();
if (!wenjian.exists())
{
System.out.println("文件不存在!");
return;
}
try{
FileInputStream duqu = new FileInputStream(wenjian);
ObjectInputStream duqua = new ObjectInputStream(duqu); while(duqu.available()>0) //为什么把这里改成duqua.available()>0就不行了?
{
shuzu.add((lei)duqua.readObject());
} for (int i=0;i<shuzu.size();i++)
{
System.out.println(shuzu.get(i).getage());
System.out.println(shuzu.get(i).getname());
} }catch(Exception e)
{
System.out.println("出错了!");
}
}
}class lei implements Serializable
{
public lei(String name,int age)
{
this.name=name;
this.age=age;
} private String name;
private int age; public String getname()
{
return this.name;
} public int getage()
{
return this.age;
}
}上面是我练习ObjectinputStream写的代码。我有一个问题。就是把
while(duqu.available()>0) 改成
while(duqua.available()>0) 为什么就读不出来了?
这两个有什么区别么 不都是返回可读的字节数么? 谢谢了!
解决方案 »
- 字符串分割
- 怎样去除监听器
- 如何通过按钮切换同一jframe下的不同jpanel
- Eclipse没有编辑代码提示的问题,谢谢,很急!
- 俄而
- 简单问题,急!!!!在线等待中。。。。
- 几个菜鸟问题!
- 哎!再简单不过了,日期类型的问题:请进
- 用JCreator写了一个小程序,有十几个class,当修改某个文件重新编译,javac并没有编译修改的文件,请问要如何做javac才会重新编译所有的
- 为什么我一运行java程序,就出现java.lang.NoClassDefFoundError,Exception in thread "main"
- 请问一个JB里的小问题,希望没有发错版
- 在JAVA中要判断一个字符串是不是 "\" 应该怎么写
刚才尝试过了,System.out.println(duqua.available());
显示为0。。
请高手解答原因,谢了
FileInputStream duqu = new FileInputStream(wenjian);
为什么不是
FileInputStream fileInputStream= new FileInputStream(file);一类的呢去公司面试,一看你这些命名规范,一下就刷。