繁体   English   中英

即使文件已经存在也正在重新创建

[英]File is being recreated even though it already exists

此代码如何删除我拥有的文件并制作一个新文件?

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();
                }   
            }   
        }
    }
}

createNewFile()是原子的,它不会删除该文件(如果存在)。 请查看布尔输出,如果您的文件已经存在,则应为false。

编辑

将附加参数添加到FileWriter。 每次都覆盖。

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

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM