我試圖做一個任務,我想不通爲什麼它不會所有收集的數據寫入到一個文本文件。基本上,我需要閱讀所謂的「標記」一個txt文件,輸出它(這它),然後將其分類到兩個文件 - 如果等級低於50就會去fail.txt,如果是50或更大它會把它放在pass.txt中。只需要首先從marks.txt關口,並把它放在pass.txt,一個來自marks.txt我需要的所有8進行排序。的Java不會寫所有提交
這裏是源:
import java.io.*;
public class WriteKONG {
public static BufferedReader read;
public static PrintWriter WriteToPass;
public static PrintWriter WriteToFail;
public static String line;
public static void main(String[] args) throws IOException {
read = new BufferedReader(new FileReader("src/marks.txt"));
WriteToPass = new PrintWriter(new FileWriter("pass.txt"));
WriteToFail = new PrintWriter(new FileWriter("fail.txt"));
String StudentID;
String Course;
String MarkS;
int Mark;
line = read.readLine();
while(line != null)
{
sort();
}
}
public static void sort() throws IOException
{
read = new BufferedReader(new FileReader("src/marks.txt"));
WriteToPass = new PrintWriter(new FileWriter("pass.txt"));
WriteToFail = new PrintWriter(new FileWriter("fail.txt"));
String StudentID;
String Course;
String SMark;
int Mark;
while (line != null) {
line = read.readLine();
StudentID = line;
System.out.println("StudentID = " + StudentID);
line = read.readLine();
Course = line;
System.out.println("Course = " + Course);
line = read.readLine();
SMark = line;
System.out.println("Mark = " + SMark + "\n");
Mark = Integer.valueOf(SMark);
if(Mark >= 50)
{
WriteToPass.println(StudentID);
WriteToPass.println(Course);
WriteToPass.println(SMark);
WriteTopass.close();
}
else
{
WriteToFail.println(StudentID);
WriteToFail.println(Course);
WriteToFail.println(SMark);
WriteToFail.println(line);
WriteToFail.close();
}
}
}
}
這裏是marks.txt:
75676881
English
94
75676883
Math
78
75676885
Physics
24
75676887
Chemistry
89
75676889
English
35
75676891
History
24
你確定'WriteToPass.println(SMARK); WriteToFail.close();'? – njzk2 2014-11-14 18:40:09
@ njzk2我切換它仍然不能正常工作燁。 – 2014-11-14 18:48:57
閱讀的文檔'FileWriter',你可能要打開的文件中'append'模式 – njzk2 2014-11-14 19:04:20