Сканирование Java текста, скопированного из файла .doc в файл .txt или .rtf - PullRequest
0 голосов
/ 15 сентября 2011

По сути, я делаю копирование текста из документа Word (97-2003 Word Doc) в текстовый файл или в форматированный текстовый файл, и утилите сканирования Java это почему-то не нравится.

Вот класс, который я настроил для работы с операциями чтения файлов:

import java.io.*;
import java.lang.*;
import java.util.*;

public class FileReader 
{
    private Scanner read;

    public void openFile(String name, String path)
    {
        try
        {
            read = new Scanner(new File(path + "/" + name));
            System.out.println("Succesfully opened " + name + " in " + path + "!");
        }
        catch(Exception e)
        {
            System.out.println("Could not open file.");
        }
    }

    public boolean hasNextEntry()
    {
        boolean result = false;

        if(read.hasNext())
        {
            result = true;
        }
        return result;
    }

    public String getNextLine()
    {
        String result = "";
        try
        {
            result = read.nextLine();
        }
        catch(Exception e)
        {
            System.out.println("Error getting next line --> " + e);
        }
        return result;
    }
}

Что я делаю в своей функции Main :

FileReader fr = new FileReader();
String dir = System.getProperty("user.dir");
fr.openFile("Text.txt", dir);
String line = fr.getNextLine();

Есть идеи?

1 Ответ

0 голосов
/ 15 сентября 2011

Word .doc файлы являются (проприетарным форматом) двоичными файлами - здесь не о чем говорить.Вы не можете читать их так, как пытаетесь (как текст).

Вы звоните Scanner.nextLine(), который пытается найти разделитель следующей строки и вернуть текст до него.Я подозреваю, что он не может найти разделитель строк (или он просто рвется, пытаясь разобраться с бинарным файлом).

Если ваш следующий вопрос: «Как мне их тогда прочитать?»... ответ - проект Apache POI

...