数字で満たされた.txtファイルを読み込んでから、最大から最小までの数字でファイルを作成することで、Javaでいくつかの練習をしたかったのです。
そのために、いくつかのクラスを作成しました。これは私のコードです:
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:41:52 行temp=list.get(a).toString();
目return storeArray().size();
です。int array[] = new int[getLength()];