RandomAccessFile 类往一个文件中写数据,写的时候正常,但是写的数据在新文件中看不到,似乎是丢失了!这是怎么回事呢,原来是可以写的,但是突然之间就不行了,这是由什么原因造成的,该怎么办!!!!
请高手不吝赐教!!!!!!!
请高手不吝赐教!!!!!!!
解决方案 »
- 关于wait()的问题
- 我想使用Synthetica的一些swing的主题,但是却始终如发出来应有的效果
- 如何把java程序打包成linux下可运行的客户端
- 请教一下高手
- 关于RMI实现中的一个命令行问题 java -Djava.rmi.server.codebase=http://***.com/pack_Name.class_Name
- 一个label上面如何放几行字????也就是如何让字符串分行.label上
- classpath 问题?
- 我能动态得到对象的方法,并能够invoke。却无法确定它的返回值,急!
- 小问题>?????
- jbuilder4不好用
- 框架的作用?希望详细点,或者给文档也可以.
- 如何显示两个日期间的所有日期
我昨天也遇到一个同样的问题,用FileWriter写文件时,如果不关闭的话是写不进去的
import java.util.Scanner;
class IoTest{
public static void main(String[] args){
Scanner s=new Scanner(System.in);
String info=s.next();
try
{
RandomAccessFile logFile = new RandomAccessFile("e:/IoTest.txt","rw");
logFile.writeBytes(info);
//logFile.close();
System.out.println("信息已写入文件");
} catch(IOException ioe)
{
System.out.println("无法写入文件:"+ioe.getMessage());
}
}
}
String testDat = "/d.dat";
rf = new RandomAccessFile(testDat, "rw");
int times = 10;
rf.writeByte(times);
for (int i = 0; i < times; i++) { rf.writeByte(1);
}
rf.seek(0);
for (int i = 0; i < times; i++) {
System.out.println(rf.readByte());//在这里可以读到数据
}
rf.close();
// System.gc(); DataInputStream dis = new DataInputStream(testDat.getClass()
.getResourceAsStream(testDat)); if (dis.available() > 0) {
int count = dis.readByte();
byte buffer[] = new byte[count];
dis.readFully(buffer); for (int i = 0; i < buffer.length; i++) {
System.out.println(buffer[i]);
}
} else {
System.out.println(" file is null");
//程序总是运行到这里,数据写不进去,关了编辑器也不行,重新解压覆盖原来
//的eclipse不行,重装JDK后还是不行啊。原来我就是按照这种办法写文件的,但是突然之间就不行了 }