gpt4 book ai didi

java - 如何将 .txt 文件中的文本分配为变量值? java

转载 作者:行者123 更新时间:2023-12-02 04:46:47 25 4
gpt4 key购买 nike

我编写了这段代码,它接受 .txt 文件并扫描它。每行代表一个单独的进程及其属性。我需要能够循环 .txt 文件的每一行,并将不同的值分配给进程的字段。

这是我的流程类:

public class Process {

private String name;
private int arrive_time= 0;
private int burst_time = 0;
private int remain_time = 0;

public Process (String name, int arr_time, int bur_time) {

this.arrive_time = arr_time;
this.burst_time = bur_time;
this.remain_time = burst_time;
this.name = name;
}

public int getArrTime() {return arrive_time;}
public int getBurTime() {return burst_time;}
public int getRemTime() {return remain_time;}
public String getName() {return name;}

public void decRemTime() {this.remain_time--;}
}

这是我的 .txt 文件:

P1 0 8
P2 1 4
P3 2 9
P4 3 3
END 4 9999

p1 应该被分配给第一个进程的 name 变量。 0 是到达时间。 8是突发时间。然后我们移动到下一行,并对每次移动到 .txt 中的新行时我们将创建的新进程执行相同的操作

这是我分配事物的代码:

import java.io.BufferedReader;
import java.io.FileNotFoundException;
import java.io.FileReader;
import java.io.IOException;
import java.util.*;

public class Test {

public static void main(String[] args) {

//Priority queue for storing the initialized processes
PriorityQueue<Process> prq = new PriorityQueue<Process>(5, new Comparator<Process> () {

@Override
public int compare(Process p1, Process p2) {
return p1.getArrTime() - p2.getArrTime();
}
});

BufferedReader br = null;
String line;

try {
br = new BufferedReader(new FileReader("C:\\Users\\Veni\\Desktop\\test\\test.txt\\"));
}
catch (FileNotFoundException fnfex) {
System.out.println(fnfex.getMessage() + "File not found");
System.exit(0);
}

try {
int localProcessIndex = 0;

/* Count number of lines in .txt and store number in localProcessIndex.
* Then declare exactly that many processes.
*
* Then move to the loop below and start reading each line's values
* and start initialising the processes with those values.
*
* Then move all the processes to the prq priority queue.
*/

while((line = br.readLine()) != null) {


//Process localProcessIndex = new Process(line.split);
//System.out.println(line);
}
}
catch(IOException ioex) {
System.out.println(ioex.getMessage() + "Error reading");
}

SPN spn = new SPN(prq);
spn.SPN_ALG();
}
}

最佳答案

假设您的文件始终具有相同的结构,您可以使用 split(String regex) 方法来处理您的数据:

while((line = br.readLine()) != null) {
try {
String[] params = line.split(" ");
prq.add(new Process(params[0], Integer.parseInt(params[1]), Integer.parseInt(params[2]))),
...
}
catch(Exception e) {
//Log
}
}

编辑:您需要做的是拥有一个Process项目列表。这将允许您创建所需的进程数量并使其在稍后阶段可用。我修改了上面的代码以提供此功能。

关于java - 如何将 .txt 文件中的文本分配为变量值? java ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29602294/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com