2013-10-26 1 views
-1

Я хочу прочитать файлы .txt, .doc и .docx и распечатать содержимое этих файлов. Когда я запустил приведенный ниже код, будут прочитаны некоторые файлы .doc и .txt но многие файлы не могут читать.Ошибка в файле .doc и .docx

import java.io.File; 
import javax.swing.*; 
import java.io.BufferedReader; 
import java.io.File; 
import java.io.FileInputStream; 
import java.io.FileReader; 

public class FindYourDocx 
{ 

    public static void main(String[] args) 
    { 
String text = ""; 
    int read, N = 1024 * 1024; 
    char[] buffer = new char[N]; 

    try { 
     JFileChooser openFile=new JFileChooser(); 
      openFile.setCurrentDirectory(new File(".")); 
      openFile.showOpenDialog(null); 
      File f1=openFile.getSelectedFile(); 
      String file1=f1.toString(); 
      File f =new File(file1); 
      JOptionPane.showMessageDialog(null,f); 
     FileReader fr = new FileReader(f); 
     BufferedReader br = new BufferedReader(fr); 

     while(true) { 
      read = br.read(buffer, 0, N); 
      text += new String(buffer, 0, read); 
     System.out.println("Follows"+text+" "); 
        if(read < N) { 
       break; 
      } 
     System.out.println("Follows"+text+" "); } 
    } catch(Exception ex) { 
     ex.printStackTrace(); 
    } 

    }} 

, выполнив приведенный выше код (для некоторых файлов) я получил некоторые проводных сообщения следующего
http://i.stack.imgur.com/RwNWM.jpg

Кто-то пожалуйста, помогите мне решить эти проблемы ....

читать. docx я наткнулся на что-то вроде XWPFDocument, используя apacheio .... что это?

ответ

0

Прежде всего, вы должны подумать о своей проблеме: что разные типы файлов выглядят как файл, какова их структура, каков контент, который вы хотите распечатать, и что означает «печать» вообще? То, что вы делаете, это чтение файлов, обработка их как текста и печать их в STDOUT. «Печать» означает это в вашем случае? Я интерпретирую «печать» как возможность отправки контента на принтер и получения бумаги.

Еще один совет: Doc и Docx - это двоичные файлы, содержащие «печатный» текст «где-то». Вы не можете просто читать файлы и делать что-то с данными. Вам нужно знать, как выглядят эти форматы файлов, есть ли контент и т. Д. Java не может этого сделать из коробки, вам нужны дополнительные библиотеки для анализа этих форматов файлов и что-то с ними делать.

Есть много учебников и вопросов вокруг форматов, таких как DOCX:

How to read docx file content in java api using poi jar

+0

Извините друг я не могу получить то, что у сказал .... может у пожалуйста, загрузите код для чтения .doc и .docx файлов ???и я новичок в java, поэтому, пожалуйста, помогите мне решить эти проблемы: ( – user2576388

+0

У меня нет исходного кода, я просто хотел, чтобы вы подумали о своей проблеме: достаточно ли просто прочитать некоторые байты из любого файла для печати содержимого в человеческом дружеском ключе? Нет, это не так, вам нужно подумать о разных форматах файлов и найти некоторые библиотеки, которые могут их проанализировать. –

0

читать .docx я наткнулся на что-то вроде XWPFDocument используя apacheio .... что это?

Вы имеете в виду Apache POI. Чтобы узнать больше, проверьте сайт. Короче говоря, как Apache POI, так и docx4j (которые, как я отмечаю, вы отметили), являются библиотеками Java, предназначенными для чтения, обработки и записи файлов Microsoft Office.

Файлы «doc» являются собственными двоичными файлами Microsoft. Если вы попытаетесь прочитать их и отобразить их, используя только API Java IO, все, что вы увидите, представляет собой представление двоичных данных. Это вам не поможет. Вам необходимо использовать API специально для загрузки и перемещения файлов Word, в которые входят Apache POI или docx4j.

«docx» - это новый формат Microsoft Office на основе XML. Файл docx - это, по существу, ZIP-папка, содержащая различные активы, которые составляют файл Word.

Как я уже сказал, для правильного чтения файла Word вам потребуется использовать одну из упомянутых библиотек. Оба веб-сайта Apache и docx4j содержат много примеров кода, чтобы вы начали открывать и перемещать документы Word (обратите внимание, что POI может работать со старым .doc-форматом, тогда как docx4j предназначен только для файлов .docx).

http://www.docx4java.org

http://poi.apache.org