import java.io.DataInputStream;
import java.io.FileInputStream;
import java.io.DataOutputStream;
import java.io.FileOutputStream;
public class Data
{
public static void main(String args[])
{
try
{
FileOutputStream fout=new FileOutputStream("c:\\out.txt");
DataOutputStream dfout=new DataOutputStream(fout);
int i;
for (i=0;i<4;i++){
dfout.writeInt(i);
}
dfout.close();
FileInputStream fin=new FileInputStream("c:\\out.txt");
DataInputStream dfin=new DataInputStream(fin);
while(dfin.read() != -1) {
System.out.print(dfin.readInt());
}
dfin.close();
}
catch(Exception e)
{
System.err.println("发生异常:"+e);
e.printStackTrace();
}
}
} 06553633554432发生异常:java.io.EOFException
java.io.EOFException
at java.io.DataInputStream.readInt(DataInputStream.java:358)
at Data.main(Data.java:22)上面是程序运行出现的错误在eclipse中我的意思是想把0 1 2 3读到文件中 再读出来显示 怎么就不行呢 大家帮我看看错在哪里
我觉得就是writeInt() 和 readInt()那的问题 但是不知道怎么改
import java.io.FileInputStream;
import java.io.DataOutputStream;
import java.io.FileOutputStream;
public class Data
{
public static void main(String args[])
{
try
{
FileOutputStream fout=new FileOutputStream("c:\\out.txt");
DataOutputStream dfout=new DataOutputStream(fout);
int i;
for (i=0;i<4;i++){
dfout.writeInt(i);
}
dfout.close();
FileInputStream fin=new FileInputStream("c:\\out.txt");
DataInputStream dfin=new DataInputStream(fin);
while(dfin.read() != -1) {
System.out.print(dfin.readInt());
}
dfin.close();
}
catch(Exception e)
{
System.err.println("发生异常:"+e);
e.printStackTrace();
}
}
} 06553633554432发生异常:java.io.EOFException
java.io.EOFException
at java.io.DataInputStream.readInt(DataInputStream.java:358)
at Data.main(Data.java:22)上面是程序运行出现的错误在eclipse中我的意思是想把0 1 2 3读到文件中 再读出来显示 怎么就不行呢 大家帮我看看错在哪里
我觉得就是writeInt() 和 readInt()那的问题 但是不知道怎么改
解决方案 »
- 代码中红色标定部分有什么区别?
- 菜鸟弱弱的问一下:为什么java-version运行不了……
- oracle中怎样执行这个sql,或者怎样调用
- 如何截取这个字符串
- 我的applet里面为什么弹不出窗口啊?在Jbuilder中运行,就能弹出来。为什么?下面是代码。
- 基于RMI服务的工作流系统,符合国际工作流联盟规范,适用各个行业的应用,请大家发表看法!
- 在applet中,能不能根据byte[] 创建一个Image图像,并显示???如果可以,如何做?
- java怎么得到父窗口属性?
- java类
- 急问java中有关HTML解析器的使用
- java正则表达式学习辅导书推荐
- jdbc:oracle:oci8 与jdbc:oracle:oci的区别
while((n = dfin.read()) != -1) {
System.out.print(n);
}
{
public static void main(String args[])
{
try
{
FileOutputStream fout = new FileOutputStream("d:\\out.txt");
DataOutputStream dfout = new DataOutputStream(fout);
int i;
for (i = 0; i < 4; i++)
{
dfout.writeBytes(String.valueOf(i));
}
dfout.flush(); dfout.close();
FileInputStream fin = new FileInputStream("d:\\out.txt");
DataInputStream dfin = new DataInputStream(fin);
int j = 0;
while ((j = dfin.read()) != -1)
{
System.out.print((char) j);
}
dfin.close();
}
catch (Exception e)
{
System.err.println("发生异常:" + e);
e.printStackTrace();
}
}
}
DataOutputStream dfout=new DataOutputStream(fout);
for (int i=0; i<4; i++){
dfout.writeBytes(String.valueOf(i)); }
dfout.flush();
dfout.close();
while(dfin.read() != -1) {
System.out.print((char)dfin.read());
}
dfin.close();
}
不过这么写为什么就不对呢
显示的结果是:13
为什么呢
System.out.print((char)dfin.read()); //这里读了第二次
}
dfin.close();
} 所以while括号里面读的是02
打印那里读的是13
最好用while(fin.available>0)来判断产生java.io.EOFException 是因为读取的文件到了末尾,文件指针还在读,所以换个判断条件