안녕하세요, 저는 자바에서 몇 가지 연습을하고 싶습니다. 숫자로 채워진 .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를 호출
이 같은이 방법 :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 :
이public class Main {
public static void main(String[] args) {
Texto t = new Texto("numeros.txt");
t.orderFile();
}
}
실행 오류가 말한다 temp=list.get(a).toString();
이 내 코드입니다 41 : return storeArray().size();
52 : int array[] = new int[getLength()];
list.remove(a);
루프의 끝 부분도 삭제 될 수 있습니다 후 있다는 그런 다음이
String temp="";
while (temp!=null) {
temp=buffer.readLine();
if (temp != null) {
list.add(temp);
}
}
같은으로 재 작성
String temp="";
while (temp!=null)
{
list.add(buffer.readLine()); // buffer.readLine() will return null at EOF
// but that isn't tested here
temp=list.get(a).toString(); // so at EOF you .toString() null - NPE.
a++;
}
:
컴파일러 오류 메시지가 무엇입니까? 게시 해주세요. – rgettman
그럼, 이제는 컴파일을 거부하는 곳을 추측해야합니다. – fvu
오케이, 미안, 내가 서둘러 2 게시 할 생각합니다. 그것은 말한다 Texto.storeArray (Texto.java:25) Texto.getLength에서 \t (Texto.java:41) Texto.orderFile에서 \t (Texto.java에서 스레드 예외 "주"java.lang.NullPointerException이 \t : 52) \t at Main.main (Main.java:6) –