Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/377.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-带数组列表的二进制文件I/O_Java_Binary_Arraylist_Objectoutputstream_Objectinputstream - Fatal编程技术网

Java-带数组列表的二进制文件I/O

Java-带数组列表的二进制文件I/O,java,binary,arraylist,objectoutputstream,objectinputstream,Java,Binary,Arraylist,Objectoutputstream,Objectinputstream,我是java初学者,在使用数组列表的二进制文件输入和输出时遇到问题。我试图将数组列表中的数据存储在一个文件中,然后使用它在控制台中显示它。这是我的一些代码,它运行时显示了错误的信息,我也收到了警告。关于导致此问题的原因有什么帮助吗?谢谢 public class Towers { public static ArrayList<String> allMoves= new ArrayList<String>(); static{ allMov

我是java初学者,在使用数组列表的二进制文件输入和输出时遇到问题。我试图将数组列表中的数据存储在一个文件中,然后使用它在控制台中显示它。这是我的一些代码,它运行时显示了错误的信息,我也收到了警告。关于导致此问题的原因有什么帮助吗?谢谢

public class Towers {
    public static ArrayList<String> allMoves= new ArrayList<String>();
    static{
        allMoves.add( "These Are the Disk Moves:" );
    }

    public static void move(final int aNumDisks){
        move(aNumDisks, 1, 2, 3);
        String fileName = "solution.dat";
        try{
            ObjectOutputStream outputStream = 
                    new ObjectOutputStream(
                            new FileOutputStream (fileName));
            outputStream.writeObject(allMoves);
            outputStream.close( );
        }
        catch ( IOException e ){
            System.out.println("Error writing to file " + fileName);
            System.exit(0);
        }
    }
但我明白了:

=== 0 disks move(int) ===
These Are the Disk Moves:
Move disk from 1 to 3
Move disk from 1 to 2
Move disk from 3 to 2
Move disk from 1 to 3
Move disk from 2 to 1
Move disk from 2 to 3
Move disk from 1 to 3

=== 0 disks move(,,) ===
These Are the Disk Moves:
Move disk from 1 to 3
Move disk from 1 to 2
Move disk from 3 to 2
Move disk from 1 to 3
Move disk from 2 to 1
Move disk from 2 to 3
Move disk from 1 to 3

=== 1 disk move(int) ===
These Are the Disk Moves:
Move disk from 1 to 3

=== 2 disks ===
These Are the Disk Moves:
Move disk from 1 to 2
Move disk from 1 to 3
Move disk from 2 to 3

=== 2 disks move(2,3,2,1) ===
These Are the Disk Moves:
Move disk from 1 to 2
Move disk from 1 to 3
Move disk from 2 to 3

=== 3 disks move(3) ===
These Are the Disk Moves:
Move disk from 1 to 3
Move disk from 1 to 2
Move disk from 3 to 2
Move disk from 1 to 3
Move disk from 2 to 1
Move disk from 2 to 3
Move disk from 1 to 3

你得到的警告是完全正常的。您可以通过在带有警告的行之前插入此行来抑制它:

@SuppressWarnings("unchecked")
对于您得到的错误信息:

  • 在尝试读取文件之前,请确保已写入该文件,因为您可能正在使用该文件的旧版本
  • 确保ArrayList中包含正确的移动

您希望展示什么?您当前看到的是什么?你得到了什么警告?为了让人们理解为什么你的程序不起作用,你需要发布这些东西。这是家庭作业吗?如果是,则将其标记为。我没有看到任何主方法或任何移动(int,int,int,int)。请把它们也寄出去
=== 0 disks move(int) ===
These Are the Disk Moves:
Move disk from 1 to 3
Move disk from 1 to 2
Move disk from 3 to 2
Move disk from 1 to 3
Move disk from 2 to 1
Move disk from 2 to 3
Move disk from 1 to 3

=== 0 disks move(,,) ===
These Are the Disk Moves:
Move disk from 1 to 3
Move disk from 1 to 2
Move disk from 3 to 2
Move disk from 1 to 3
Move disk from 2 to 1
Move disk from 2 to 3
Move disk from 1 to 3

=== 1 disk move(int) ===
These Are the Disk Moves:
Move disk from 1 to 3

=== 2 disks ===
These Are the Disk Moves:
Move disk from 1 to 2
Move disk from 1 to 3
Move disk from 2 to 3

=== 2 disks move(2,3,2,1) ===
These Are the Disk Moves:
Move disk from 1 to 2
Move disk from 1 to 3
Move disk from 2 to 3

=== 3 disks move(3) ===
These Are the Disk Moves:
Move disk from 1 to 3
Move disk from 1 to 2
Move disk from 3 to 2
Move disk from 1 to 3
Move disk from 2 to 1
Move disk from 2 to 3
Move disk from 1 to 3
@SuppressWarnings("unchecked")