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。它每次都会被覆盖。