Как восстановить текстовый файл? - PullRequest
0 голосов
/ 27 сентября 2011

Я хочу восстановить следующие данные из текстового файла.Проблема только в одной строке / строке, которую я могу восстановить, я не могу восстановить остальные данные.

Вот код:

public static String restore(String filename) throws IOException, ClassNotFoundException
{
    FileInputStream fn = new FileInputStream(filename);
    ObjectInputStream ob = new ObjectInputStream(fn);
    String sample = (String) ob.readObject();

     return sample;
}

Ответы [ 2 ]

4 голосов
/ 08 ноября 2011

Трудно понять смысл этого вопроса, но если вы просто хотите прочитать строки из файла .txt и в массив, тогда эти два метода могут помочь.

Вам просто нужно вызватьString[] textArray = readFromFile("yourfilename.txt"); Это дает вам массив с каждой строкой в ​​файле как элемент.

Scanner fScan(String filename) {

        Scanner sc = null;
        try {
            sc = new Scanner(new File(fname));
        } catch (FileNotFoundException e) {
            System.out.println("File not found:" + fname + "  " + e);
        }
        return sc;
}

String[] readFromFile (String fname) {
        Scanner sc = fScan(fname);
            int length = 0;
            String lineCounter;
        while (sc.hasNext()){
            lineCounter = sc.nextLine();
            length++;
        }

        String[] array = new String[length];

        sc = fScan(fname);

        for (int i = 0; i < length; i++) {
        array[i] = sc.nextLine();
        }

        sc.close();
        return array;
}
3 голосов
/ 08 ноября 2011

Ваш код читает только первый элемент в вашем двоичном файле.

public static void restore(String filename) throws IOException, ClassNotFoundException
{
    FileInputStream fn = new FileInputStream(filename);
    ObjectInputStream ob = new ObjectInputStream(fn);
    String string1 = (String) ob.readObject();
    String string2 = (String) ob.readObject();

}

Вы уверены, что не перезаписали свой файл при его сериализации?

Но, насколько я понимаюВаш вопрос: вы не хотите сериализовать / десериализовать String-Object вместо чтения / записи текстового файла.

Если вы просто хотите прочитать / записать файл, вы ошиблись с ObjectInputStream

взгляните на: http://download.oracle.com/javase/1.3/docs/api/java/io/BufferedReader.html

...