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

时间:2016-01-19 17:20:55

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

1 个答案:

答案 0 :(得分:1)

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

修改

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

FROM

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

TO

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