我删除了我的上一篇文章,因为我甚至没有问过我想要的事情,对此感到抱歉。无论如何,这是关于我的最后一个问题。 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的一侧。谢谢,我对任何事情持开放态度。
答案 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] + " ");