Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/335.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 无法删除文件,但写入程序已关闭_Java_File_Bufferedwriter - Fatal编程技术网

Java 无法删除文件,但写入程序已关闭

Java 无法删除文件,但写入程序已关闭,java,file,bufferedwriter,Java,File,Bufferedwriter,这是我在文件中编写的代码 FileOutputStream fos = new FileOutputStream( fileTAG, true ); OutputStreamWriter osw = new OutputStreamWriter( fos, strFileEncoding ); buf = new BufferedWriter( osw ); buf.write( strTagStream ); buf.newLine(); buf.flush(); if ( buf != nu

这是我在文件中编写的代码

FileOutputStream fos = new FileOutputStream( fileTAG, true );
OutputStreamWriter osw = new OutputStreamWriter( fos, strFileEncoding );
buf = new BufferedWriter( osw );
buf.write( strTagStream );
buf.newLine();
buf.flush();
if ( buf != null )
{
    buf.close();
}
if ( osw != null )
{
    osw.close();
}
if ( fos != null )
{
    fos.close();
}
这是我的代码,先删除文件,然后删除目录:

File[] arrFiles = fileTagpath.listFiles();
for ( File fileCurrentFile : arrFiles )
{
    if ( !fileCurrentFile.delete() )
    {
        String strMessage = "File <" + fileCurrentFile.getAbsolutePath() + "> has not been deleted.";
        System.out.println( strMessage );
        fail( strMessage );
    }
}
if ( !fileTagpath.delete() )
{
    String strMessage = "Directory <" + fileTagpath.getAbsolutePath() + "> has not been deleted.";
    System.out.println( strMessage );
    fail( strMessage );
}
File[]arrFiles=fileTagpath.listFiles();
对于(文件fileCurrentFile:arrFiles)
{
如果(!fileCurrentFile.delete())
{
String strMessage=“文件尚未删除。”;
System.out.println(strMessage);
失败(strMessage);
}
}
如果(!fileTagpath.delete())
{
String strMessage=“尚未删除目录。”;
System.out.println(strMessage);
失败(strMessage);
}
它失败,并显示文件尚未删除的消息。输出显示正确的文件和正确的目录。如果我把路径复制到我的浏览器窗口,我会找到正确的文件。文件路径在下面

C:\Users\xxx\AppData\Local\Temp\tag


我的错误是什么?

在java中,如果您想使用反斜杠。像这样试试

您的路径:C:\Users\xxx\AppData\Local\Temp\tag

但是,您必须始终使用双反斜杠,如下所示:


C:\\Users\\xxx\\AppData\\Local\\Temp\\tag

如下更改路径:C:\\Users\\xxx\\AppData\\Local\\Temp\\tag
buf
在测试时不可能为
null
,也不可能为
osw
fos
buf.close()
之后的
close()
调用都不是必需的,而且
buf.flush()
也不是必需的。不要编写无意义的代码。@Ganymed如果您发布的代码确实创建了要删除的文件,并且在您从
File.listFiles()
派生路径名时,我看不出这有可能解决您的问题。除非出于某些未说明的原因,
fileTag
不是从fileTAGpath`派生的。