使用类读取文件的问题

时间:2016-01-25 14:01:36

标签: java file file-io

我必须使用带有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 []而且我不明白我做错了什么。

请帮帮我, 谢谢!

0 个答案:

没有答案