package com.richfit.bi.imap.util;import java.io.ByteArrayInputStream;
import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.InputStream;import org.apache.poi.POIXMLDocument;
import org.apache.poi.hwpf.extractor.WordExtractor;
import org.apache.poi.openxml4j.exceptions.OpenXML4JException;
import org.apache.poi.openxml4j.opc.OPCPackage;
import org.apache.poi.poifs.filesystem.POIFSFileSystem;
import org.apache.poi.xwpf.extractor.XWPFWordExtractor;
import org.apache.poi.xwpf.usermodel.XWPFComment;
import org.apache.poi.xwpf.usermodel.XWPFDocument;
import org.apache.xmlbeans.XmlException;public class ParseWord
{
private static XWPFDocument docx1;

public static void main(String[] args)
{
try
{
  boolean b = writeWordFile("C:/workspace/test2.docx","Hello World");
}
catch (Exception e)
{
e.printStackTrace();
}
}
public static boolean writeWordFile(String path, String content)
{
boolean w = false;
try
{
   byte b[] = content.getBytes("utf-8");

   ByteArrayInputStream bais = new ByteArrayInputStream(b);

            POIFSFileSystem fs = new POIFSFileSystem();

   FileOutputStream ostream = new FileOutputStream(path);

   fs.writeFilesystem(ostream);

   bais.close();
   ostream.close();

}
catch (IOException e)
{
e.printStackTrace();
}
return w;
}

}

解决方案 »

  1.   

    运行代码,可以生成test2.docx但是打开时就报错说是文件已经损坏,不知道是什么原因,请高手指点,谢谢
      

  2.   

    算了自己结了,在方法writeWordFile改为
    public static boolean writeWordFile(String path, String content)
    {
    boolean w = false;
    try
    {

    // byte b[] = content.getBytes("ISO-8859-1");
    byte b[] = content.getBytes("utf-8");

    ByteArrayInputStream bais = new ByteArrayInputStream(b);

    POIFSFileSystem fs = new POIFSFileSystem();
    DirectoryEntry directory = fs.getRoot();

    DocumentEntry de = directory.createDocument("WordDocument", bais);

    FileOutputStream ostream = new FileOutputStream(path);

    fs.writeFilesystem(ostream);

    bais.close();
    ostream.close();

    }
    catch (IOException e)
    {
    e.printStackTrace();
    }
    return w;
    }
    就行了……初次接触poi。路漫漫其修远矣啊