Java 文件创建过程损坏

Java 文件创建过程损坏,java,file-io,writer,Java,File Io,Writer,我遇到了一个奇怪的情况,我必须创建一个名为abc.dat的.dat文件,但问题是,当我创建它时,我在c:驱动器中检查扩展名为.dat的文件,而不是创建扩展名为_auto_的文件,请告知我如何更正代码,以便创建扩展名为.dat的文件 if ( totaltsers.size()>0){ try {// Generate a file //File file = new File( String finalfilename= abamfilepath+

我遇到了一个奇怪的情况,我必须创建一个名为abc.dat的.dat文件,但问题是,当我创建它时,我在c:驱动器中检查扩展名为.dat的文件,而不是创建扩展名为_auto_的文件,请告知我如何更正代码,以便创建扩展名为.dat的文件

if ( totaltsers.size()>0){
    try {// Generate a file
        //File file = new File(

        String finalfilename= abamfilepath+ getFileName();
        System.out.println(finalfilename);

        File file = new File(abamfilepath+ getFileName());
        FileOutputStream fileOutputStream = null;
        OutputStreamWriter outputStreamWriter = null;
        BufferedWriter bw = null;

        Charset charset = Charset.forName("UTF-8");
        CharsetEncoder charsetEncoder = charset.newEncoder();
        charsetEncoder.onMalformedInput(CodingErrorAction.IGNORE);
        fileOutputStream = new FileOutputStream(file.getPath());
        outputStreamWriter = new OutputStreamWriter(fileOutputStream, charsetEncoder);
        bw = new BufferedWriter(outputStreamWriter);

        if (file.exists()){
            file.delete();
        }

        for (tser tser : totaltsers) {
            for (toabj bk : books) {
                //if (tser.toabjdfr() == null)
                if((tser.toabjdfr() == null) &&(tser.ghjk() == null )){
                    bw.write("aaa");
                }
                else if (tser.toabjdfr() == null && tser.ghjk() != null ){
                    bw.write("bb");     
                }
                else if ( tser.toabjdfr() != null && tser.ghjk() == null){
                    bw.write("ccc");    
                }
            else
                    bw.write("ddd");
                bw.newLine();
            }
        }     
        bw.flush();
        bw.close(); 
        fileOutputStream.close();
        outputStreamWriter.close();
    }
    catch (Exception e){
        String message = "Ate exception : " + e.getMessage();
        System.err.println(message);
        logger.error(message);
    }
} 
下面是构造文件名的步骤

public String getFileName() {
    return buildFileName();
}

private String buildFileName() {
    String  filename  = "abc";
    filename = filename+".dat";
    return filename;
我已按建议做了更改,但仍然不起作用。。但它仍然不起作用,请告知

String finalfilename= abamfilepath+ getFileName();
         System.out.println(finalfilename);
            File file = new File(abamfilepath + getFileName());
             FileOutputStream fileOutputStream = new FileOutputStream(file.getPath());
              OutputStreamWriter    outputStreamWriter = new OutputStreamWriter(fileOutputStream);
               BufferedWriter bw = new BufferedWriter(outputStreamWriter);
               if (file.exists()) {
                file.delete();
            }


             file.createNewFile();




    }
问题仍然是相同的dat文件未创建,而是创建了大小为0的类型为_auto_file gt的文件

File outFile = new File("numbers.dat");
    BufferedWriter writer = new BufferedWriter(new FileWriter(outFile));
    writer.write("12");
    writer.close();
如果您仍然无法创建文件,可能与windows根驱动器上的权限有关。您的操作系统是否安装在C驱动器上?如果是,请尝试更改创建文件的位置