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 #MATLAB仿真#车辆换道路径规划
  • ¥15 java 操作 elasticsearch 8.1 实现 索引的重建
  • ¥15 数据可视化Python
  • ¥15 要给毕业设计添加扫码登录的功能!!有偿
  • ¥15 kafka 分区副本增加会导致消息丢失或者不可用吗?
  • ¥15 微信公众号自制会员卡没有收款渠道啊
  • ¥100 Jenkins自动化部署—悬赏100元
  • ¥15 关于#python#的问题:求帮写python代码
  • ¥20 MATLAB画图图形出现上下震荡的线条
  • ¥15 关于#windows#的问题:怎么用WIN 11系统的电脑 克隆WIN NT3.51-4.0系统的硬盘