ArrayList alan bir okuyucu sınıfı oluşturdum ve her satırı yeni bir öğeye kaydetmek için .txt okumaya başladım (her seferinde okuyucu metin ile yeni bir satır bulur, ArrayList'e yeni bir öğe ekler). Bu, ArrayList'in içeriğini yazdırdığımda, okuyucuyu gerçekten kaydeder, ancak sonunda 0false
ile çalışır. Bu benim ana sınıfına ne yaptığını geçerli:Bir txt yanlış okuması yapan bir okuyucu sınıfı (kaydedilen her dizenin sonunda 0parse)
ArrayList<Carrera> clista = new ArrayList<Carrera>();
CarreraReader lectorCarrera = new CarreraReader();
lectorCarrera.leer(clista);
Ve bu benim okuyucu sınıfında yöntemdir:
public void leer(ArrayList<Carrera> clista) throws FileNotFoundException {
Scanner s = new Scanner(new File("thetext.txt"));
while(s.hasNextLine())
{
Carrera cq = new Carrera();
cq.setNombre(s.nextLine());
clista.add(cq);
}
Yani bir üniversite kariyerini belirten dizeleri bir sürü kaydeder, ancak bunda yol: örn:
Engineering0false
Art0false
Law0false
Agronomy0false
nasıl her dizesinin sonunda 0false
kaydetmesini okuyucuyu önleyebiliriz? Yanlış yaptığım bir şey var mı? Aynı okuyucuyu tek bir sınıf projesinde denedim ve mükemmel bir şekilde çalıştı, sonunda hiçbir String'in 0false
'u yoktu.
Bu benim Carrera sınıf uygulamasıdır: Burada
package paquete;
public class Carrera {
private String nombre;
private int duracion;
private String codigo;
private boolean acreditado;
public Carrera() {
nombre="";
duracion=0;
codigo="";
acreditado=false;
}
public Carrera(String nombre, int duracion, String codigo, boolean acreditado) {
this.nombre=nombre;
this.duracion=duracion;
this.codigo=codigo;
this.acreditado=acreditado;
}
public String getNombre() {
return nombre;
}
public void setNombre(String nombre) {
this.nombre = nombre;
}
public int getDuracion() {
return duracion;
}
public void setDuracion(int duracion) {
this.duracion = duracion;
}
public String getCodigo() {
return codigo;
}
public void setCodigo(String codigo) {
this.codigo = codigo;
}
public boolean isAcreditado() {
return acreditado;
}
public void setAcreditado(boolean acreditado) {
this.acreditado = acreditado;
}
public String toString()
{
return nombre;
}
}
ben içeriği yazdırmak nasıl:
int i;
for(i=0;i<clista.size();i++){
System.out.println(clista.get(i));
}
Post 'Carrera.setNombre (String)' lütfen. Ve kaydedilen 'String' (ler) 'i nasıl belirliyorsunuz. –
'public void setNombre (Dize nombresi) { this.nombre = nombre; } ' –
Bu satırın cq.setNombre (s.nextLine()); işlevini yürüttükten sonra' cq' 'ye ne olduğunu görmek için bir hata ayıklayıcısını kullanın. Tam olarak olması gerektiği gibi, sorun muhtemelen yazdırma kodunuzdadır. –