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

在Java中将数组保存到文本文件

在Java中将数组保存到文本文件,java,arrays,io,Java,Arrays,Io,我试图将int数组的值打印到本地文件中。但是,我似乎找不到一种方法来以标准形式(1,2,3)而不是堆地址([I@1befab0) 我的代码片段如下: PrintWriter pr = new PrintWriter("file"); for (int i=0; i<views.length ; i++){ pr.println(Arrays.toString(views)); } pr.close()

我试图将
int
数组的值打印到本地文件中。但是,我似乎找不到一种方法来以标准形式(
1,2,3
)而不是堆地址(
[I@1befab0

我的代码片段如下:

        PrintWriter pr = new PrintWriter("file");

        for (int i=0; i<views.length ; i++){
            pr.println(Arrays.toString(views));
        }
        pr.close();
    }
    catch (Exception e)
    {
        e.printStackTrace();
        System.out.println("No such file exists.");
    }
}
PrintWriter pr=新的PrintWriter(“文件”);
对于(int i=0;i数组上的toString()方法给出“[I@1befab0“字符串。
所以你需要在数组上循环

您可以将问题分成两部分:

  • 用于构建字符串(可以在调试中检查值)

  • 用于将字符串写入文件

  • 数组上的toString()方法给出“[I@1befab0“字符串。
    所以你需要在数组上循环

    您可以将问题分成两部分:

  • 用于构建字符串(可以在调试中检查值)

  • 用于将字符串写入文件


  • 您每次都试图打印整个阵列。请尝试以下操作:

    (我做了最小的更改。但是,捕获
    异常
    通常是个坏主意,通常应该在
    最后
    块中关闭编写器。)

    试试看
    {
    PrintWriter pr=新的PrintWriter(“文件”);
    
    对于(int i=0;i您每次都试图打印整个数组。请尝试以下操作:

    (我做了最小的更改。但是,捕获
    异常
    通常是个坏主意,通常应该在
    最后
    块中关闭编写器。)

    试试看
    {
    PrintWriter pr=新的PrintWriter(“文件”);
    
    对于(int i=0;i来说,当您打印出数组时,它调用数组的toString()函数。因此,您看到的是数组中存在的许多值的“视图”数组的参考值


    正如Jon指出的,您实际上需要打印数组的值。当然,这假设数组包含通过toString很好地格式化的对象(或者数组包含原语)。

    打印数组时,它调用数组的toString()函数。因此,您看到的是“视图”的参考值数组中存在尽可能多的值


    正如Jon所指出的,您实际上需要打印数组的值。当然,这假设数组包含通过toString很好地格式化的对象(或者数组包含原语).

    是否写入文件以保留数组内容?如果是,则有一个关于如何反序列化对象的链接,以便您可以在链接页面上检索值。

    是否写入文件以保留数组内容?如果是,则有一个关于如何反序列化对象的链接,以便您可以在链接页面上检索值

    数组可能是多维数组吗?如果是,请使用
    java.util.array.deepToString

    PrintWriter pr = new PrintWriter("file");
    
    for (int i=0; i<views.length ; i++){
      pr.println(Arrays.deepToString(views));
    }
    pr.close();
    
    PrintWriter pr=新的PrintWriter(“文件”);
    
    对于(int i=0;i数组可能是多维数组吗?如果是,请使用
    java.util.Arrays.deepToString

    PrintWriter pr = new PrintWriter("file");
    
    for (int i=0; i<views.length ; i++){
      pr.println(Arrays.deepToString(views));
    }
    pr.close();
    
    PrintWriter pr=新的PrintWriter(“文件”);
    
    对于(int i=0;i这里的大多数答案都关注这样一个事实:您需要迭代数组,而不是一次性打印所有数组。但是Arrays.toString(…)应该返回与Arrays.asList(…).toString()相同的结果,顺便说一句,它应该是[1,2,3]形式

    因此,我建议,正如Matt在回答中所做的那样,
    视图实际上是一个双嵌套数组

    在这种情况下,固定代码为:

    try {
        PrintWriter pr = new PrintWriter("file");
    
            for (int i=0; i<views.length ; i++){
               pr.println(Arrays.toString(views[i]));
            }
            pr.close();
        }
        catch (Exception e)
        {
            e.printStackTrace();
            System.out.println("No such file exists.");
        }
    }
    
    试试看{
    PrintWriter pr=新的PrintWriter(“文件”);
    
    对于(int i=0;i这里的大多数答案都关注这样一个事实:您需要迭代数组,而不是一次性打印所有数组。但是Arrays.toString(…)应该返回与Arrays.asList(…).toString()相同的结果,顺便说一句,它应该是[1,2,3]形式

    因此,我建议,正如Matt在回答中所做的那样,
    视图实际上是一个双嵌套数组

    在这种情况下,固定代码为:

    try {
        PrintWriter pr = new PrintWriter("file");
    
            for (int i=0; i<views.length ; i++){
               pr.println(Arrays.toString(views[i]));
            }
            pr.close();
        }
        catch (Exception e)
        {
            e.printStackTrace();
            System.out.println("No such file exists.");
        }
    }
    
    试试看{
    PrintWriter pr=新的PrintWriter(“文件”);
    对于(int i=0;i
    PrintWriter pr=new PrintWriter(“文件”);
    对于(int i=0;i
    PrintWriter pr=new PrintWriter(“文件”);
    
    对于(int i=0;i在每次迭代中关闭PrintWriter似乎是一个错误?在每次迭代中关闭PrintWriter似乎是一个错误?
    PrintWriter pr = new PrintWriter("file");        
    for (int i=0; i<views.length ; i++){            
    pr.println("" + views[i]);        
    }        
    pr.close();