输出到.dat文件

时间:2014-05-07 05:22:59

标签: java file-io printwriter

我删除了我的上一篇文章,因为我甚至没有问过我想要的事情,对此感到抱歉。无论如何,这是关于我的最后一个问题。 assingment希望我将数据发送到如下所示的输出文件:

示例输入文件:

ABC54301 TFTFTFTT TFTFTFFTTFT

示例输出文件:

ABC54301 TFTFTFTTSTFTFTFFTTFT 77.5% C
                         X    X   X X X

所以在我的outputData方法中,我需要更改Print和Println语句,以便将它发送到输出文件。这是我的outputData方法和主要方法

public static void outputData(String[][] studentTests, StringBuilder[][] studentResults, double[] testScores)
  {
    for(int rowIndex = 0; rowIndex < studentTests.length; rowIndex++)
    {
      for(int colIndex = 0; colIndex < studentTests[rowIndex].length; colIndex++)
      {
        if(colIndex == 0)
        {
          System.out.print(studentTests[rowIndex][colIndex] + " ");
        }
        else
        {
          System.out.println(studentTests[rowIndex][colIndex]);
        }
      }
      for(int colIndex = 0; colIndex < studentTests[rowIndex].length; colIndex++)
      {
        if(colIndex == 0)
        {
          System.out.print(studentResults[rowIndex][colIndex] + " ");
        }
        else
        {
          System.out.println(studentResults[rowIndex][colIndex]);
        }
      }
    }
  }

这是主要方法

public static void main(String[] args)throws IOException
  {
    inFile = new Scanner(new FileReader("GradesIn.dat"));
    outFile = new PrintWriter("GradesOut.dat");

    String testAnswers = inFile.next();

    int numberOfStudents = inFile.nextInt();
    double[] testScores = new double[numberOfStudents];

    String[][] studentTests = new String[numberOfStudents][2];
    StringBuilder[][] studentResults = new StringBuilder[numberOfStudents][2];    

    initializeResults(studentResults);
    getData(studentTests);
    gradeTests(studentTests, studentResults, testAnswers, testScores);    
    outputData(studentTests, studentResults, testScores);

    outFile.close();
    inFile.close();
  }

因此,如果有人可以帮助我,请不要给我代码,使其将数据发送到输出文件,并将Grade Percentage和LetterGrade放在输出文件中T和F的一侧。谢谢,我对任何事情持开放态度。

2 个答案:

答案 0 :(得分:0)

PrintWriter #print(String s)方法将打印您的字符串,而PrintWriter #println(String s)方法将打印字符串并终止该行,引自java docs

  

PrintWriter #println(String s):打印一个String然后终止   线。此方法的行为就像调用print(String)一样   的println()。

话虽如此,如果你想在单行中打印数据,你可以使用附加SPACE的print(String)方法,在写完最后一列之后你应该使用println(String)来编写你的String并更改行。

希望这有帮助。

答案 1 :(得分:0)

你需要改变三个(一般)事物,

首先,方法outputData需要接受PrintWriter outFile -

outputData(outFile, studentTests, studentResults, testScores); // <-- pass it in.

其次,更新方法定义 -

public static void outputData(PrintWriter pw, String[][] studentTests, 
    StringBuilder[][] studentResults, double[] testScores) // <-- add to signature

第三,更改print()来电

// System.out.print(studentTests[rowIndex][colIndex] + " ");
pw.print(studentTests[rowIndex][colIndex] + " ");