如何在java中使用for循环到文本文件获得这样的输出?

时间:2013-02-25 04:03:41

标签: java string for-loop filewriter

我必须在java中获得这样的输出

     digraph G 
   {
     main -> parse -> execute;
     main -> init;
     main -> cleanup;
     execute -> make_string;
     execute -> printf
     init -> make_string;
     main -> printf;
     execute -> compare;
     }

我试过这个

PrintStream out = new PrintStream(new FileOutputStream("graph.gv"));

         for(int i=0;i<1;i++)

    {
        System.out.println("digraph G {");

    for (String node : visited)

    {

        System.out.print(node);
        System.out.print("->");
        out.write(node);
        out.flush();

    }
   out.close();

    System.out.println();
    }
      System.out.println("}");
}

这是我的输出

      digraph G {
     A->B->E->
     }
     digraph G {
     A->B->D->E->
     }
     digraph G {
     A->B->C->E->
     }
     digraph G {
     A->B->C->D->E->
     }
     digraph G {
     A->D->E->
     }

但输出打印不正确

3 个答案:

答案 0 :(得分:1)

从for循环中移除此System.out.println("digraph G {");。也就是说,改变这个:

for(int i=0;i<1;i++)
{
   System.out.println("digraph G {");
   //Your remaining code
}

要:

System.out.println("digraph G {"); //Notice change here
for(int i=0;i<1;i++)
{
   //Your remaining code
}

这应该按预期工作。

答案 1 :(得分:0)

使用它:

System.out.println("digraph G {");   //  To print it once
for(int i=0;i<1;i++)
{
    for(int j=0; j<visited.length()-1; j++)  // Accessing one less node to avoid extra "->" at the end
    for (String node : visited)
    {
        System.out.print(node);
        System.out.print("->");
        out.write(node);
        out.flush();
    }
    System.out.print(node);  //Printing the last node left
    out.flush();
    out.close();

    System.out.println();
}
System.out.println("}");

答案 2 :(得分:0)

使用 System.out.format()方法代替 System.out.println()

如果要以某种方式格式化输出,可以使用

format()。

Refer to Oracle's tutorial of System.out.format