Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/350.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_Netbeans_While Loop_Bufferedwriter - Fatal编程技术网

Java 无法以特定格式写入文件

Java 无法以特定格式写入文件,java,file,netbeans,while-loop,bufferedwriter,Java,File,Netbeans,While Loop,Bufferedwriter,我试图以如下特定格式写入文件Days2.dat: Sunday Advanced Open Water Dive Certificate Sailing Generation Next Monday Helping Hands Beach Touch Rugby Running Club Yoga Club Tennis Lessons Tuesday Recycling Club Best Buddies Crochet Club Movie Club Shooting Club Wed

我试图以如下特定格式写入文件Days2.dat:

Sunday
Advanced Open Water Dive Certificate
Sailing
Generation Next

Monday
Helping Hands
Beach Touch Rugby
Running Club
Yoga Club
Tennis Lessons

Tuesday
Recycling Club
Best Buddies
Crochet Club
Movie Club
Shooting Club

Wednesday
Table Tennis
Modern Dance
Contemporary Dance
Gavel Club

Thursday
Cooking
Gym Training
单击按钮时,执行的操作应:

  • 读取文件Activities.dat并确定活动的日期和名称

  • 以上述活动的格式写入文件Days2.dat。dat格式如下:

一天

活动名称

主管姓名

位置

付钱

e、 g

要写入Days2.dat的当前代码

然而,电流输出是这样的(有点长,对不起)-错误很明显:

Sunday
Advanced Open Water Dive Certificate
Monday
Tuesday
Wednesday
Thursday
Sunday
Sailing
Monday
Tuesday
Wednesday
Thursday
Sunday
Generation Next
Monday
Tuesday
Wednesday
Thursday
Sunday
Monday

Helping Hands
Tuesday
Wednesday
Thursday
Sunday
Monday

Beach Touch Rugby
Tuesday
Wednesday
Thursday
Sunday
Monday

Running Club
Tuesday
Wednesday
Thursday
Sunday
Monday

Yoga Club
Tuesday
Wednesday
Thursday
Sunday
Monday

Tennis Lessons
Tuesday
Wednesday
Thursday
Sunday
Monday
Tuesday

Recycling Club
Wednesday
Thursday
Sunday
Monday
Tuesday

Best Buddies
Wednesday
Thursday
Sunday
Monday
Tuesday

Crochet Club
Wednesday
Thursday
Sunday
Monday
Tuesday

Movie Club
Wednesday
Thursday
Sunday
Monday
Tuesday

Shooting Club
Wednesday
Thursday
Sunday
Monday
Tuesday
Wednesday

Table Tennis
Thursday
Sunday
Monday
Tuesday
Wednesday

Modern Dance
Thursday
Sunday
Monday
Tuesday
Wednesday

Contemporary Dance
Thursday
Sunday
Monday
Tuesday
Wednesday

Gavel Club
Thursday
Sunday
Monday
Tuesday
Wednesday
Thursday

Cooking
Sunday
Monday
Tuesday
Wednesday
Thursday

Gym Training

目前,无论我们实际处理的是哪一天,您每次都在写一周中的哪一天,这是不完全正确的。

由于您的文件中有一周中的多个工作日,我将尝试以下内容:

  • 为一周中的每一天创建一个
    列表
    (或其他对象)。如果您不想创建太多对象,例如
    map
  • 使用您的CDay变量(如您当前所做的)确定我们正在处理一周中的哪一天
  • 如果匹配,则将活动添加到列表中
  • 一旦文件被读取,将列表的内容写入每周每一天的新文件中

您的意思是将file1.dat以与file1.dat相同的格式复制到另一个file1.dat吗?但并不完全复制file1.dat的相同数据:数据已经更新,每当数据更新时,我希望file1.dat也被更新。因此,如果buttonA使用新数据执行此过程,则新数据必须包含在新文件1.dat中,格式与我不太熟悉使用映射的格式相同,我认为我将创建多个对象。说到这里,当你说:“为一周中的每一天创建一个列表(或其他对象)”时,你能给我举一个一天的例子吗?我不太理解这个概念,比如
List sunday\u List=new ArrayList()很抱歉再次打扰,但是我应该在哪里初始化对象?感觉好像我一直在得到“类型列表不带参数”错误我每天都使用ArrayList来存储值,并在最后打印它们;成功了!!非常感谢。
File f1 = new File("Days2.dat");
File f2 = new File("Activities.dat");

f1.delete();

try{
    BufferedWriter writer = new BufferedWriter(new FileWriter(f1, true));
    BufferedReader reader = new BufferedReader(new FileReader(f2));

    while(reader.ready())
    {
        String CDay = reader.readLine();
        String CActivityName = reader.readLine();
        String CSupervisor = reader.readLine();
        String CLocation = reader.readLine();
        String CPaid = reader.readLine();
        String nothing = reader.readLine();

        writer.write("Sunday" + "\n");
        if(CDay.equals("Sunday"))
        {
            writer.write(CActivityName + "\n");
        }


        writer.write("Monday" + "\n");            
        if(CDay.equals("Monday"))
        {
            writer.newLine();
            writer.write(CActivityName + "\n");
        }            


        writer.write("Tuesday" + "\n");
        if(CDay.equals("Tuesday"))
        {
            writer.newLine();
            writer.write(CActivityName + "\n");
        }


        writer.write("Wednesday" + "\n");
        if(CDay.equals("Wednesday"))
        {
            writer.newLine();
            writer.write(CActivityName + "\n");
        }


        writer.write("Thursday" + "\n");
        if(CDay.equals("Thursday"))
        {
            writer.newLine();
            writer.write(CActivityName + "\n");
        }
    }
    writer.flush();
    writer.close();
    reader.close();

} 
catch (IOException ex) {
    Logger.getLogger(StartUpFrame.class.getName()).log(Level.SEVERE, null, ex);
}
Sunday
Advanced Open Water Dive Certificate
Monday
Tuesday
Wednesday
Thursday
Sunday
Sailing
Monday
Tuesday
Wednesday
Thursday
Sunday
Generation Next
Monday
Tuesday
Wednesday
Thursday
Sunday
Monday

Helping Hands
Tuesday
Wednesday
Thursday
Sunday
Monday

Beach Touch Rugby
Tuesday
Wednesday
Thursday
Sunday
Monday

Running Club
Tuesday
Wednesday
Thursday
Sunday
Monday

Yoga Club
Tuesday
Wednesday
Thursday
Sunday
Monday

Tennis Lessons
Tuesday
Wednesday
Thursday
Sunday
Monday
Tuesday

Recycling Club
Wednesday
Thursday
Sunday
Monday
Tuesday

Best Buddies
Wednesday
Thursday
Sunday
Monday
Tuesday

Crochet Club
Wednesday
Thursday
Sunday
Monday
Tuesday

Movie Club
Wednesday
Thursday
Sunday
Monday
Tuesday

Shooting Club
Wednesday
Thursday
Sunday
Monday
Tuesday
Wednesday

Table Tennis
Thursday
Sunday
Monday
Tuesday
Wednesday

Modern Dance
Thursday
Sunday
Monday
Tuesday
Wednesday

Contemporary Dance
Thursday
Sunday
Monday
Tuesday
Wednesday

Gavel Club
Thursday
Sunday
Monday
Tuesday
Wednesday
Thursday

Cooking
Sunday
Monday
Tuesday
Wednesday
Thursday

Gym Training