我必须使用带有llegir()方法的java类读取文件,它应该从一系列字符中读取一个单词。在这个方法中有另一个名为botarBlancs()的方法,这个方法只是知道一个单词何时完成,因为它找到了一个空白。
以下是全班:
public class Paraula {
// Constants públiques
public static final char blanc = ' ';
public static final char fiSequencia = '.';
// Constants privades
// Llargària màxima d'una paraula
private static final int MAXIM = 20;
// ATRIBUTS
private char[] lletres;
private int llargaria;
// atribut de classe, per simplificar les operacions de lectura
private static char lletra = ' ';
//++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++EXTRA
private static char[] frase = null;
private static int indice;
// INTERFICIE
// Constructor
public Paraula() {
lletres = new char[MAXIM];
llargaria = 0;
}
// llegir una paraula de la seqüència d'entrada
public static Paraula llegir() {
Paraula nova = new Paraula();
botarBlancs();
while ((lletra != fiSequencia) && // No ha acabat la seqüència
(lletra != blanc)) { // Hi ha prou espai
nova.lletres[nova.llargaria++] = lletra;
lletra = leerCarTeclado();
}
//System.out.println(nova.girar());
return nova;
}
// Convertir un objecte Paraula en un String
public String toString() {
String msg = "";
for (int idx = 0; idx < llargaria; idx++) {
msg += lletres[idx];
}
return msg;
}
// Per comparar amb une altre objecte Paraula
public boolean esIgualA(Paraula b) {
boolean iguals = llargaria == b.llargaria;
for (int idx = 0; (idx < llargaria) && iguals; idx++) {
iguals = lletres[idx] == b.lletres[idx];
}
return iguals;
}
// Per comparar dos objectes Paraula. És un mètode de classe
public static boolean iguals(Paraula a, Paraula b) {
// Fa ús del mètode esIgualA definit abans
return a.esIgualA(b);
}
// Per determinar si la paraula és buida
public boolean buida() {
return llargaria == 0;
}
// Mètodes que no formen part de la interfície
// llegir el que sigui necessari fins començar la paraula
public static void botarBlancs() {
while (lletra == blanc) {
lletra = leerCarTeclado();
}
}
// botar-se la resta de caràcters que puguin quedar si la
// paraula és massa llarga.
public static void botarParaula() throws Exception {
while ((lletra != '.') && (lletra != blanc)) {
lletra = leerCarTeclado();
}
}
static public char leerCarTeclado() {
char res = '.';
if (frase != null) {
res = frase[indice++];
}
return res;
}
我想要做的是保存文件的一行,然后将其转换为char数组,然后我想使用这个类来读取它等等。
以下是代码:
public static void generador_de_cartas() throws Exception{
Paraula pl = new Paraula();
Paraula nRef, dRef, tipo, codigo;
FileReader fr = new FileReader("datos_clientes.txt");
BufferedReader br = new BufferedReader(fr);
String line = br.readLine();
char [] linea;
while (line != null) {
linea=line.toCharArray();
linea=pl.llegir();
line=br.readLine();
}
br.close();
fr.close();
}
当我使用line = pl.llegir()时,Netbeans说Paraula不能转换为char []而且我不明白我做错了什么。
请帮帮我, 谢谢!