java程序实现先删除后创建一个文件

public class Yang{ public static void delTxt(){ File file = new File("C:尀尀data.txt"); file.deleteOnExit(); } /** * 该方法用于从传进来的list里导出到出数据 到c盘的data.txt文件 * @author d * */ public static void toTxt(String str){ try{ FileOutputStream out1 = new FileOutputStream("C:尀尀data.txt", true); BufferedOutputStream out2 = new BufferedOutputStream(out1, 2); // 装饰一个带缓冲输出流 DataOutputStream out = new DataOutputStream(out2); // 装饰一个文件输出流 out.writeUTF("手机号码: "+str +"尀r尀n"); out1.close(); } catch(IOException ex){} }public static void main(String [] s){ Yang.delTxt(); Yang.toTxt("aaa");} } 2个方法就是删除data.txt文件创建一个data.txt文件 分别执行都是正常运行。可是我想实现的是 再创建data.txt之前 删除原有的data文件就出问题了 删除方法根本不其作用.请高手赐教 . 谢谢怎么样覆盖啊?我没找到这样的方法啊?
2026年09月26日 06:12
有3个网友回答
网友(1):

实现代码如下:

import java.io.*;

import java.util.*;

import javax.swing.*;

import java.awt.event.*;

/**

* 功能: 创建临时文件(在指定的路径下)

*/

public class TempFile implements ActionListener

{

private File tempPath;

public static void main(String args[]){

TempFile ttf = new TempFile();

ttf.init();

ttf.createUI();

}

//创建UI

public void createUI()

{

JFrame frame = new JFrame();

JButton jb = new JButton("创建临时文件");

jb.addActionListener(this);

frame.add(jb,"North");

frame.setSize(200,100);

frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);

frame.setVisible(true);

}

//初始化

public void init(){

tempPath = new File("./temp");

if(!tempPath.exists() || !tempPath.isDirectory())

{

tempPath.mkdir(); //如果不存在,则创建该文件夹

}

}

//处理事件

public void actionPerformed(ActionEvent e)

{

try

{

//在tempPath路径下创建临时文件"mytempfileXXXX.tmp"

//XXXX 是系统自动产生的随机数, tempPath对应的路径应事先存在

File tempFile = File.createTempFile("mytempfile", ".txt", tempPath);

System.out.println(tempFile.getAbsolutePath());

FileWriter fout = new FileWriter(tempFile);

PrintWriter out = new PrintWriter(fout);

out.println("some info!" );

out.close(); //注意:如无此关闭语句,文件将不能删除

//tempFile.delete();

tempFile.deleteOnExit();

}

catch(IOException e1)

{

System.out.println(e1);

}

}

}

网友(2):

没有必要在创建之前删除同名文件,因为需要两次读写硬盘,耗时间也耗资源,直接用FileOutputStream覆盖就可以了。

网友(3):

file.delete();方法不行么?