标题:[求助]关于文件操作的问题!
只看楼主
gknl
Rank: 1
等 级:新手上路
帖 子:29
专家分:0
注 册:2007-7-29
 问题点数:0 回复次数:15 
[求助]关于文件操作的问题!

这个程序的目的是把键盘输入的字节先存到临时文件letter.txt里面,然后再从里面读出来,写放line.txt文件里,结果读写没问题,就是临时文件letter.txt无法删除!!这是什么原因??
import java.io.*;
public class TestFile {

public static void main(String[] args) {
int b,c;
byte[] buffer = new byte[100];
File f = new File("G:\\com.gknl");
File fTemp = null;
try {
fTemp=File.createTempFile("letter",".txt",f);
System.out.println("输入一行文本,并存入磁盘:");
b = System.in.read(buffer);
FileOutputStream writeFile = new FileOutputStream(fTemp);
writeFile.write(buffer,0,b);
FileInputStream In = new FileInputStream(fTemp);
FileOutputStream Out = new FileOutputStream("G:\\com.gknl\\line.txt");
while((c=In.read())!=-1){
Out.write(c);
}
In.close();
fTemp.deleteOnExit();
System.out.println("输入完毕!!");

} catch (IOException e1) {
e1.printStackTrace();
}



}

}

搜索更多相关主题的帖子: 文件 txt letter File 
2007-07-29 22:45
heilong
Rank: 3Rank: 3
等 级:新手上路
威 望:6
帖 子:777
专家分:0
注 册:2007-6-7
得分:0 
用delete()方法试试.

风水鸡蛋壳,财去人安乐!----->
2007-07-29 22:51
gknl
Rank: 1
等 级:新手上路
帖 子:29
专家分:0
注 册:2007-7-29
得分:0 
试过了,还是不行!我觉得不可能错误的啊,怎么会这样

2007-07-29 23:06
heilong
Rank: 3Rank: 3
等 级:新手上路
威 望:6
帖 子:777
专家分:0
注 册:2007-6-7
得分:0 

在我这的临时文件名多了些数据,并不是你所创建的一样.我想就这原因.

[此贴子已经被作者于2007-7-29 23:30:28编辑过]


风水鸡蛋壳,财去人安乐!----->
2007-07-29 23:19
gknl
Rank: 1
等 级:新手上路
帖 子:29
专家分:0
注 册:2007-7-29
得分:0 

那是临时文件,为是让这个临时文件不跟现存的文件名有冲突,所以java自动在后面添加了随机数


2007-07-29 23:44
heilong
Rank: 3Rank: 3
等 级:新手上路
威 望:6
帖 子:777
专家分:0
注 册:2007-6-7
得分:0 
你可以用System.out.println(fTemp.getAbsolutePath());来看下你创建的文件并不和你这里
fTemp=File.createTempFile("letter",".txt",f);一样.

风水鸡蛋壳,财去人安乐!----->
2007-07-29 23:45
heilong
Rank: 3Rank: 3
等 级:新手上路
威 望:6
帖 子:777
专家分:0
注 册:2007-6-7
得分:0 
那后面调用也就不可以一样了啊.所以也就没删掉啊``````

风水鸡蛋壳,财去人安乐!----->
2007-07-29 23:46
gknl
Rank: 1
等 级:新手上路
帖 子:29
专家分:0
注 册:2007-7-29
得分:0 
结果是这样的
输入一行文本,并存入磁盘:
fgs g
G:\letter42374.txt
输入完毕!!
这说明文件名都给打印出来了,怎么会调用fTemp.deleteOnExit();删不了呢

2007-07-29 23:55
gknl
Rank: 1
等 级:新手上路
帖 子:29
专家分:0
注 册:2007-7-29
得分:0 
既然System.out.println(fTemp.getAbsolutePath());能够打印出这个带有随机数的文件,那么fTemp.deleteOnExit();也就能够删除了啊

2007-07-30 00:06
千里冰封
Rank: 16Rank: 16Rank: 16Rank: 16
来 自:灌水之王
等 级:版主
威 望:155
帖 子:28477
专家分:59
注 册:2006-2-26
得分:0 
把fTemp有关的输入输出流都关掉,这样才好删除某个文件

可惜不是你,陪我到最后
2007-07-30 09:52



参与讨论请移步原网站贴子:https://bbs.bccn.net/thread-159026-1-1.html




关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.150584 second(s), 7 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved