import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.DataInputStream;
import java.io.DataOutputStream;
public class kk
{ public static void main(String args[])
{
int []grade={55,44,22,33,11};
try
{
FileOutputStream fout=new FileOutputStream("grade.txt");
DataOutputStream dfout=new DataOutputStream(fout);
for(int i=0;i<grade.length;i++)
dfout.writeInt(grade[i]);
dfout.close();
FileInputStream fin=new FileInputStream("grade.txt");
DataInputStream dfin=new DataInputStream(fin);
int ch=dfin.readInt();
while(ch!=-1)
{
System.out.print(ch+" ");
ch=dfin.readInt();
}
}
catch(Exception e)
{
System.out.println("出现异常");
}
}
}
为什么后面还会执行catch这个语句,不知道问题在哪里?帮忙指点一下
import java.io.FileOutputStream;
import java.io.DataInputStream;
import java.io.DataOutputStream;
public class kk
{ public static void main(String args[])
{
int []grade={55,44,22,33,11};
try
{
FileOutputStream fout=new FileOutputStream("grade.txt");
DataOutputStream dfout=new DataOutputStream(fout);
for(int i=0;i<grade.length;i++)
dfout.writeInt(grade[i]);
dfout.close();
FileInputStream fin=new FileInputStream("grade.txt");
DataInputStream dfin=new DataInputStream(fin);
int ch=dfin.readInt();
while(ch!=-1)
{
System.out.print(ch+" ");
ch=dfin.readInt();
}
}
catch(Exception e)
{
System.out.println("出现异常");
}
}
}
为什么后面还会执行catch这个语句,不知道问题在哪里?帮忙指点一下
while(ch!=-1)
{
System.out.print(ch+" ");
ch=dfin.readInt(); //现在ch是11
}
假设现在ch是11,已经读到最后一个元素了。数组里没有其它的值了。
本次循环完了,继续下次循环。while判断ch!=-1,因为,现在ch=11所以,继续System.out.print
然后再ch=dfin.readInt。现在数组里已经没有值了。再读就会出错了。所以,catch会被执行。
应该懂了吧!
import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.DataInputStream;
import java.io.DataOutputStream;
public class J_Data
{
public static void main(String arg[])
{
try
{
FileOutputStream fout=new FileOutputStream("out.txt");
DataOutputStream dfout=new DataOutputStream(fout);
int i;
for(i=0;i<4;i++)
dfout.writeInt('0'+i);
dfout.close();
FileInputStream fin=new FileInputStream("out.txt");
DataInputStream dfin=new DataInputStream(fin);
for(i=0;i<4;i++)
System.out.print(dfin.readInt()+",");
dfin.close();
}
catch(Exception e)
{
System.err.println("发生异常");
}
}
}
这句没有执行