[英]reading lines in from a text file and sorting them into a linked list java
[英]How reading from text file into stack and queues using doubly linked list in java
我解釋我的程序。 該程序有兩個文件,兩個文件有學生編號,學生姓名和姓氏。
例:
queues.txt:
我如何讀取並拋出堆棧和隊列? 程序具有數據類,節點類,堆棧類,隊列類和主類。 我做了除主類之外的所有類,因為在拋出堆棧和隊列后我無法讀取文件。
public static void main(String[] args) throws IOException {
Stack stack = new Stack();
Queues queue = new Queues();
File stackfile = new File("stack.txt");
if (!stackfile.exists()) {
stackfile.createNewFile();
} else {
System.out.println("File is done");
}
FileReader r= new FileReader(stackfile);
BufferedReader reader = new BufferedReader(r);
String line = null;
Data data= new Data(); // this class have String name, surname and string number
int i=1;
while ((line=reader.readLine())!=null) {
{ if(line.trim().equals("#")){
stack.Push(data);
data=new Data();
i=1;
}
else{
if(i==1){
data.setNo(line);
}
else if(i==2){
data.setName(line);
}
else if(i==3){
data.setSurName(line);
}
i++;
}
}
}
stack.Push(data);
reader.close();
File queuefile = new File("queue.txt");
if (!queuefile.exists()) {
queuefile.createNewFile();
} else {
System.out.println("File is done");
}
BufferedReader read = null;
read = new BufferedReader(new FileReader(queuefile));
String lines = read.readLine();
while (lines != null) {
System.out.println("Read from queue: " + lines);
{ if(lines.trim().equals("#")){
queue.insert(data);
data=new Data();
i=1;
}
else{
if(i==1){
data.setNo(line);
}
else if(i==2){
data.setName(line);
}
else if(i==3){
data.setSurName(line);
}
i++;
}
}
}
queue.insert(data);
read.close();
}
}
這是更正的代碼。 您的循環主體沒有達到您的預期。 如果要使用#
這樣的分隔符來分割文本,請使用String
的split
功能。 在這里,您可以找到如何使用split
。
public static void main(String[] args) throws IOException {
Stack stack = new Stack();
Queues queue = new Queues();
File stackfile = new File("stack.txt");
if (!stackfile.exists()) {
stackfile.createNewFile();
} else {
System.out.println("File is done");
}
FileReader r = new FileReader(stackfile);
BufferedReader reader = new BufferedReader(r);
String line = null;
// Skip headline
reader.readLine();
while ((line = reader.readLine()) != null) {
String[] splitLine = line.trim().split("#");
if (splitLine.length == 3)
stack.Push(new Data(splitLine[1], splitLine[2], splitLine[0]));
}
reader.close();
File queuefile = new File("queue.txt");
if (!queuefile.exists()) {
queuefile.createNewFile();
} else {
System.out.println("File is done");
}
BufferedReader read = null;
read = new BufferedReader(new FileReader(queuefile));
// Skip headline
read.readLine();
while ((line = read.readLine()) != null) {
String[] splitLine = line.trim().split("#");
if (splitLine.length == 3)
queue.insert(new Data(splitLine[1], splitLine[2], splitLine[0]));
}
read.close();
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.