我有一个包含前1000个素数的文本文件,我编写了一个从所述文本文件中读取数据的方法。
我想知道如何使用此文件中的数据并将其应用于其他方法。
有些事情:
read data from file;
use first eight numbers and apply to this method;
任何帮助都将不胜感激。
答案 0 :(得分:4)
读取文件并将每个数字存储到数组或列表中。然后,您可以使用数组的索引获取所需的数字。
答案 1 :(得分:3)
从文件中读取很简单,假设每个数字有一行 -
BufferedReader br = new BufferedReader(new FileReader("<your-text-file>"));
String txtNum;
while((txtNum = br.readLine()) != null)
{
//txtNum is the number read, use it however you need
if (txtNum.length() > 8) {
thisMethod(txtNum.substring(0, 8));
}
}
答案 2 :(得分:0)
使用Scanner
从文件中读取数据,并将每一行存储在ArrayList
的数组(或int
)中。获取该数组的子集并将其传递给支持可变长度参数的方法(例如)。类似的东西:
public static void main(String[] args) {
ArrayList<Integer> primes = new ArrayList<Integer>();
readPrimeData(new File("path/to/data"), primes);
someMethod(primes.subList(0, 8).toArray(new Integer[0]));
}
static public boolean readPrimeData(File dataFile, ArrayList<Integer> data) {
boolean err = false;
try {
Scanner scanner = new Scanner(dataFile);
String line;
while (scanner.hasNext()) {
line = scanner.nextLine();
try {
data.add(Integer.parseInt(line));
} catch (NumberFormatException e) {
e.printStackTrace();
err = true;
}
}
scanner.close();
} catch (FileNotFoundException e) {
e.printStackTrace();
err = true;
}
return err;
}
static public void someMethod(Integer...primes) {
// primes is Integer[]
}
方法someMethod
也可以像
someMethod(1, 2, 3, 5, 7);
答案 3 :(得分:0)
首先,您必须了解信息的组织方式。例如,你可以用这种方式组织你的1000个第一个主要的nunbers:
1
2
3
5
7...
或者这样:
1-2-3-5-7-11...
您可以使用StringBuilder(或只是一个字符串)来保存文件的编号(假设您的文本与上面的第二种方式相同)。由于数字用短划线分隔,你可以使用一个子串,它可以将前8个数字带到某个方法。
BufferedReader br = new BufferedReader(new FileReader("Prime Nunbers.txt"));
String num;
int count = 1;
while((num= br.readLine()) != null) {
if( count <= 8 )
someMethod( num.subString(0, num.indexOf("-")) );
}
但是如果你的数字像第一种方式一样(每行一个数字),你可以这样做:
BufferedReader br = new BufferedReader(new FileReader("Prime Nunbers.txt"));
String num;
int count = 1;
while((num = br.readLine()) != null) {
if( count <= 8 )
someMethod( num );
num = "";
}
如果你想一次使用前8个数字,你可以完全读取文件,然后根据这些数字的读取方式使用一些子字符串。