FTDGU 2016-10-05 06:48 采纳率: 0%
浏览 3279

java 文档删除不了file.delete();

File file = new File(EMP_DATA_FILE);
File file2 = new File("D:/eclipse-jee-mars-R-win32-x86_64/项目/HRMIS/records-new.txt");
BufferedReader reader = null;
try {
reader = new BufferedReader(new FileReader(file));
} catch (FileNotFoundException e2) {
// TODO Auto-generated catch block
e2.printStackTrace();
}
PrintWriter writer = null;
try {
writer = new PrintWriter(file2);
} catch (FileNotFoundException e2) {
// TODO Auto-generated catch block
e2.printStackTrace();
}
String line;
try {
while ((line = reader.readLine()) != null) {
// 判断条件,根据自己的情况书写,会删除所有符合条件的行
if (line.startsWith(payroll)) {
// 读取后面的几行,废弃
continue;
}
writer.println(line);
writer.flush();
}
} catch (IOException e1) {
// TODO Auto-generated catch block
e1.printStackTrace();
}
try {
reader.close();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
writer.close();

    // 删除老文件
    file.delete();
    file2.renameTo(file);
    System.out.print("\nRecord deleted.\n");
  • 写回答

1条回答 默认 最新

  • FTDGU 2016-10-05 06:56
    关注
    String cmd = "del "+ EMP_DATA_FILE ;
        Runtime run = Runtime.getRuntime(); 
        try { 
        Process p = run.exec("cmd /c "+cmd); //cmd为String,其内容为对应系统的删除命令,例如:在win下,应该写成:String cmd = "del "+你的文件路径以及文件名; 
        p.waitFor(); 
        } catch (Exception e) { 
        e.printStackTrace(); 
        }
        为什么把这段代码放在了这方法的开头就可以了,但该段程序并未删除文档,好像是把文档的各种流关闭了,然后再执行delete方法就可以删除了,求大神们解答下为什么啊????????,File的delete删除。到底要关闭那些流啊?????
    
    评论

报告相同问题?

悬赏问题

  • ¥15 sqlite 附加(attach database)加密数据库时,返回26是什么原因呢?
  • ¥88 找成都本地经验丰富懂小程序开发的技术大咖
  • ¥15 如何处理复杂数据表格的除法运算
  • ¥15 如何用stc8h1k08的片子做485数据透传的功能?(关键词-串口)
  • ¥15 有兄弟姐妹会用word插图功能制作类似citespace的图片吗?
  • ¥200 uniapp长期运行卡死问题解决
  • ¥15 请教:如何用postman调用本地虚拟机区块链接上的合约?
  • ¥15 为什么使用javacv转封装rtsp为rtmp时出现如下问题:[h264 @ 000000004faf7500]no frame?
  • ¥15 乘性高斯噪声在深度学习网络中的应用
  • ¥15 关于docker部署flink集成hadoop的yarn,请教个问题 flink启动yarn-session.sh连不上hadoop,这个整了好几天一直不行,求帮忙看一下怎么解决