嘿,我想在 java 中做一些练习,通过读取一个充满数字的 .txt 文件,然后创建一个从最大到最小的数字。
为了做到这一点,我做了一些课程。这是我的代码:
import java.io.*;
import java.util.LinkedList;
public class Texto {
String fileName;
public Texto(String nombreArchivo) {
this.fileName = nombreArchivo;
}
public LinkedList storeArray() {
LinkedList list = new LinkedList();
int a=0;
try {
FileReader file = new FileReader(fileName);
BufferedReader buffer = new BufferedReader(file);
String temp="";
while (temp!=null) {
list.add(buffer.readLine());
temp=list.get(a).toString(); // line 25
a++;
}
list.remove(a);
} catch (IOException e) {
e.getMessage();
}
return list;
}
public int getLength() {
return storeArray().size(); // line 41
}
public void orderFile() {
try {
FileWriter file = new FileWriter("archivoOrdenado.txt");
BufferedWriter buffer = new BufferedWriter(file);
PrintWriter print = new PrintWriter(buffer);
int array[] = new int[getLength()]; // line 52
for (int i=0;i<getLength();i++) {
array[i]=(Integer)storeArray().get(i);
}
int temp;
for (int i=0;i<getLength();i++) {
for (int j=1;i<getLength();j++) {
if (array[i]<array[j]) {
temp=array[i];
array[i]=array[j];
array[j]=temp;
}
}
}
for (int i=0;i<getLength();i++) {
print.println(array[i]);
}
print.close();
buffer.close();
} catch (IOException e) {
e.getMessage();
}
}
}
在另一个类中,y 像这样调用这个方法:
public class Main {
public static void main(String[] args) {
Texto t = new Texto("numeros.txt");
t.orderFile();
}
}
运行错误说:
Exception in thread "main" java.lang.NullPointerException
at Texto.storeArray(Texto.java:25)
at Texto.getLength(Texto.java:41)
at Texto.orderFile(Texto.java:52)
at Main.main(Main.java:6)
这是第 25 行:temp=list.get(a).toString();
41: return storeArray().size();
52:int array[] = new int[getLength()];