Java 正在重新创建文件,即使该文件已存在

Java 正在重新创建文件,即使该文件已存在,java,file,Java,File,这段代码如何删除我的文件并创建一个新文件 public void actualizaJTextArea(String cliente){ mensagens.setText(""); Scanner scanner = null; File file = createFile(cliente + "chatswith.txt"); try { scanner = new Scanner(file); } catch (IOException

这段代码如何删除我的文件并创建一个新文件

public void actualizaJTextArea(String cliente){
    mensagens.setText("");
    Scanner scanner = null;
    File file = createFile(cliente + "chatswith.txt");
    try {
        scanner = new Scanner(file);
    } catch (IOException e) {
        // TODO Auto-generated catch block
        e.printStackTrace();
    }       
    (...)
    scanner.close();
}
public static File createFile(String s){
    File file = new File(s);
    if(!file.exists()){
        try {
            boolean b = file.createNewFile();
            System.out.println(b);
        } catch (IOException e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        }
    }   
    return file;
}
方法
createNewFile()
是否执行此操作? 谢谢,如果在我找不到之前有人问我这个问题,我很抱歉

编辑

我也在这里使用
createFile()
来写入它,但用法是一样的,所以我猜不可能是这样的:

public void recebeMensagem(boolean b){
    while(true){
        Mensagem m = null;
        try {
            m = (Mensagem)input.readObject();
            System.out.println("Mensagem Recebida:"+m);
        } catch (ClassNotFoundException e){ 

        } catch (IOException e) {
            try {
                input.close();
                System.out.println("Server desligou...");
                break;
            } catch (IOException e1) {

            }
        }
        if(m != null){
            for(Mensagens mensagens:v){
                for(String string: m.getReceivers()){
                    if (mensagens.getCliente().equals(m.getAuthor()) && mensagens.getContacto().equals(string)){
                        mensagens.actualizaJTextArea(cliente);
                    }   
                }
            }   
            for(String Str :m.getReceivers()){
                PrintWriter p = null;
                File file = Mensagens.createFile(cliente + "chatswith.txt");
                try {
                    p = new PrintWriter(new FileWriter(file));
                    p.append(m.getAuthor()+"</<"+Str+"</<"+m.getText()+"\n");
                    p.close();
                } catch (IOException e) {
                    e.printStackTrace();
                }   
            }   
        }
    }
}
public void receibemensage(布尔b){
while(true){
Mensagem=null;
试一试{
m=(mensage)input.readObject();
System.out.println(“Mensagem Receibida:+m”);
}catch(classnotfound异常){
}捕获(IOE异常){
试一试{
input.close();
System.out.println(“服务器desligou…”);
打破
}捕获(IOE1异常){
}
}
如果(m!=null){
对于(Mensagens Mensagens:v){
for(字符串:m.getReceivers()){
if(mensagens.getCliente().equals(m.getAuthor())&&mensagens.getContacto().equals(string)){
mensagens.RealizajTextArea(客户);
}   
}
}   
for(字符串Str:m.getReceivers()){
PrintWriter p=null;
File File=Mensagens.createFile(cliente+“chatswith.txt”);
试一试{
p=新的PrintWriter(新的FileWriter(文件));
p、 append(m.getAuthor()+“createNewFile()是原子的,如果文件存在,它将不会删除该文件。请查看布尔输出,如果文件已经存在,它应该为false

编辑


将append参数添加到FileWriter。每次都会覆盖该参数

p=新的PrintWriter(新的FileWriter(文件))


p=new PrintWriter(new FileWriter(file,true));

u确定不在其他地方删除它吗?还有一件事您没有告诉我们,
createFile
不会创建一个文件,如果它确实存在的话。确定,但我会查找delete()总之@nafas@QuakeCore也许它不是在删除它,只是在删除内容somehowAddappend参数到FileWriter。它每次都会被覆盖。