您的位置:程序门 -> java -> j2se / 扩展类



请高手帮帮忙吧!!!


[收藏此页] [打印本页]选择字色:背景色:字体:[][][]


请高手帮帮忙吧!!![已结贴,结贴人:gknly]
发表于:2007-07-29 23:48:59 楼主
这个程序的目的是把键盘输入的字节先存到临时文件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();
                }
               
               
                     
        }

}

发表于:2007-07-30 00:36:341楼 得分:0
api上说要虚拟机终止时才会删除,那要什么才会终止呢,怎样才算了终止呢?
发表于:2007-07-30 12:29:452楼 得分:5
最简单的办法,去任务管理器关闭javaw.exe进程
发表于:2007-08-13 18:34:243楼 得分:5
应该是代码的问题
你先调用了close()
此方法解释为:关闭此文件输入流并释放与此流有关的所有系统资源

所以这个时候你对ftemp的操作已经没有效果
发表于:2007-08-13 19:55:404楼 得分:5
输入输出流用完都要关闭
你的writefile流用完并没有关闭因此那个临时文件一直再用着所以不能删除
我试过了   你将writefile流用完之后关闭就可以了

我将g盘改为了f盘
import   java.io.*;
public   class   testfile   {

        public   static   void   main(string[]   args)   {
                int   b,c;
                byte[]   buffer   =   new   byte[100];
                file   f   =   new   file( "f:\\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);
                        //在此处关闭writefile流
      writefile.close();
                        fileinputstream   in   =   new   fileinputstream(ftemp);
                        fileoutputstream   out   =   new   fileoutputstream( "f:\\com.gknl\\line.txt ");
                        while((c=in.read())!=-1){
                                out.write(c);
                        }
                        //out.close();
                        ftemp.deleteonexit();in.close();
                        system.out.println( "输入完毕!! ");

                }   catch   (ioexception   e1)   {
                        e1.printstacktrace();
                }
               
               
                     
        }

}
发表于:2007-08-13 20:48:355楼 得分:5
汗,我错了~~
实践才是硬道理


快速检索

最新资讯
热门点击