当前位置: 首页 > 知识库问答 >
问题:

dat文件不是由缓冲写入程序创建的

鲁斯伯
2023-03-14

我陷入了一个奇怪的境地,我必须创造一个。名为abc的dat文件。dat但问题是,当我创建它时,然后在我的c:驱动器中检查扩展名为的文件。dat不是cretaed,而是创建了扩展名类型为_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();




    }

共有2个答案

陆沈浪
2023-03-14

File f=new File(file);之类的语句不会在磁盘上创建文件。Classjava.io.File仅表示文件路径,而不是磁盘上的实际文件。

要创建新文件,请为其打开一个文件输出流(FileOutputStream),然后可以使用它将数据写入文件。

桂坚
2023-03-14

首先,使用文件本身创建FileInputStream,如下所示:

    fileOutputStream = new FileOutputStream(file);

然后,在这一行之后:

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

包括代码

    file.createNewFile();

这应该可以解决你的问题。

 类似资料:
  • 我无法重写从二进制缓冲区获取的文件,我已与原始文件进行了检查,所有字节都相同。 这是从NodeJS创建的文件: 这是最初的一个: 你可以比较这两个文件,每个字节都是一样的,我猜NodeJS的编码不是正确的。 这是一段代码 你可以试着在你的节点上运行它,看看结果是错误的。 我能做些什么来修复它?

  • 我被困在一个奇怪的情况下,实际上我有一个工作,它在一个单独的文件夹中创建文件,该工作每天都在运行,所以它每天都在该文件夹中创建文件,该文件扩展名为. dat以及它的zip文件。 现在,假设作业今天运行,它将在该文件夹中创建两个文件,第二天我希望前一天的zip文件保留在该文件夹中,但是。dat文件应在删除之前删除。今天的dat文件得到创建,我已经写了代码,但它没有发生,因为我想请建议如何实现这一点

  • 本文向大家介绍C#创建及读取DAT文件操作,包括了C#创建及读取DAT文件操作的使用技巧和注意事项,需要的朋友参考一下 *.DAT 从后缀名上也能理解其中的含义即:data文件,数据文件;这个文件有的可以用记事本工具打开,但是加密后就不一定了。 很多程序都创建dat文件来保存设定。创建一个只有自己才能解析得dat文件,并且可以读取和写入,写一个类,它可以创建一个只有使用这个类才能解析得dat文件。

  • 如果要为数据库服务器创建新的缓冲池,只需要两个名称为和的参数。 使用以下查询创建新的缓冲池: 语法: 这里,指定缓冲池的名称,指定页面的大小。需要声明缓冲池值(,,,) 示例: 创建一个名称为的新缓冲池,其中为。

  •        在“分析”菜单栏中点击“创建缓冲区”,创建缓冲区只能选择点、线、面,不可直接绘制。        左键单击选择对象,选择上之前添加的点、线、面,弹出对话框如图。        创建点缓冲区只可设置缓冲区宽度(单位:米)以及圆弧的每个分段角度,角度越小,圆弧越圆滑;创建线缓冲区可设置缓冲区宽度、拐角是否圆滑、两端是否圆滑以及圆弧的每个分段角度;创建面缓冲区可设置缓冲区宽度、拐角是否圆滑

  •        在“分析”菜单栏中点击“创建缓冲区”,创建缓冲区只能选择点、线、面,不可直接绘制。        左键单击选择对象,选择上之前添加的点、线、面,弹出对话框如图。        创建点缓冲区只可设置缓冲区宽度(单位:米)以及圆弧的每个分段角度,角度越小,圆弧越圆滑;创建线缓冲区可设置缓冲区宽度、拐角是否圆滑、两端是否圆滑以及圆弧的每个分段角度;创建面缓冲区可设置缓冲区宽度、拐角是否圆滑