java随手画保存和打开,能保存,打不开。m_vectorSet是用来保存点的,s和t是定义的点,求指点!

publicvoidsave(){try{FileOutputStreamfos=newFileOutputStream("test.txt");DataOutputSt... public void save()
{
try
{
FileOutputStream fos=new FileOutputStream("test.txt");
DataOutputStream dos=new DataOutputStream(fos);
dos.writeInt(m_vectorSet.size());
for(int i=1;i<m_vectorSet.size();i++)
{
v=m_vectorSet.get(i);
int m=v.size()-1;
for(int j=1;j<m;j++)
{
s=(Point)v.get(j);
t=(Point)v.get(j+1);
int x1=s.x;
int y1=s.y;
int x2=t.x;
int y2=t.y;
dos.writeInt(x1);
dos.writeInt(y1);
dos.writeInt(x2);
dos.writeInt(y2);
}
}
dos.flush();//关闭输出流
fos.close();
}
catch(Exception ef){ef.printStackTrace();}
}

public void open()
{
try
{
FileInputStream fis=new FileInputStream("test.txt");
DataInputStream dis=new DataInputStream(fis);
int len=dis.readInt();//先读取长度,得到循环次数
for(int i=0;i<len/4;i++)
{
s.x=dis.readInt();s.y=dis.readInt();
t.x=dis.readInt(); t.y=dis.readInt();
Point p1= new Point(s.x,s.y);Point p2= new Point(t.x,t.y);
Vector<Point> v1 = new Vector<Point>();
v1.add(p1);

v1.add(p2);
m_vectorSet.add(v1);
}
repaint();
fis.close();
}
catch(Exception e){e.printStackTrace();}
}
展开
 我来答
bd9006
2012-12-04 · TA获得超过2.5万个赞
知道大有可为答主
回答量:4.8万
采纳率:63%
帮助的人:1.6亿
展开全部
java中序列下标是从0开始的。

for(int j=1;j<m;j++){
s=(Point)v.get(j);
t=(Point)v.get(j+1);
写进去的时候,有重叠了。
如果确定是成对的,不要循环

s=(Point)v.get(0);
t=(Point)v.get(1);

读进来的时候,for(int i=0;i<len/4;i++),结束判断是i<len。

定义自定义对象,直接写对象,更好
class LinePoint{
private int x1;
private int y1;
private int x2;
private int y2;
..............
}
往翼已离夜
2012-12-08 · TA获得超过176个赞
知道小有建树答主
回答量:552
采纳率:85%
帮助的人:105万
展开全部
你可以帮楼上说对的改成 if
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 1条折叠回答
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式