How do I access the XYZ file format in java ?
A large database of file extensions be found at
www.file-extensions.org and
dotwhat.net
And if you don't know what type a given file is, they there are various way to determine it programmatically:
http://www.rgagnon.com/javadetails/java-0487.html
An interesting article about Microsoft's binary file formats, especially
DOC and XLS, is
Why are the Microsoft Office file formats so complicated? (And some workarounds) It also mentions some alternatives to dealing with those formats directly.
Access
Jackcess - library to read and write MDB filesHXTT Access - commercial pure Java JDBC driver for MS Access
CHM
JChm - library to read CHM files
Excel
Apache Commons CSV, Ostermiller Utils, CSVObjects, CSVBeans, opencsv, Java CSV, Super CSV - libraries to read and write CSV files. CSV is not as easy to read and write as it first looks - once all the special cases are considered, one might as well use a library. POI - library to read and write XLS and XLSX filesjXLS - library for writing XLS files based on templatesObba works with Excel spreadsheets on WindowsOpenXLS - "OpenXLS is the open source version of ExtenXLS - a Java spreadsheet SDK that allows you to read, modify and create Java Excel spreadsheets from your Java applications."
Gedcom
GDBIgedcom4jGenJ
HDF (Hierarchical Data Format)
Java products by the HDF Group
Image and movie files
ImageJ - Java image processing application and library that has plugins for lots of image file formatsJIMI - library to read and write BMP, CUR, GIF, ICO, JPEG, PICT, PNG, PSD, Sun Raster, TGA, TIFF, XBM and XPM. There's a plugin for using JIMI with ImageJ, which also includes a couple of JIMI patches.GIF write, TIFF, RAW, PNM and JPEG2000 read/write support for ImageIO: JAI Image I/O ToolsTwelveMonkeys| - additions for the ImageIO APIMP4 parserApache Commons Imaging is a library that reads and writes a variety of image formats, including fast parsing of image info (size, color space, ICC profile, etc.) and metadata.
INI
ini4j "is a simple Java API for handling configuration files in Windows .ini format."
Matlab
JMatIO - Matlab's MAT-file I/O in JAVA
mbox
Mbox-Store works with JavaMail, but requires to be built using Cmstor also works with JavaMail
OpenDocument (ODF)
ODFDOM is a Java library for accessing ODF files.jDocument.org has an open-source library for accessing all Open Document file types.Obba works with OpenOffice spreadsheetsOffice2FO converts ODF documents to XSL-FO documents, making possible further transformations (like conversion to PDF using FOP)
Office Open XML
These are the XML-based Microsoft Office formats, standardized by ECMA, but implemented by Microsoft in a non-compliant waydocx4j - create and edit docx documents using a JAXB content model matching the WordML schema Apache POI implements these formats.
OpenOffice Java API
OpenOffice can read a number of file formats, and makes them accessible through its API. A starting point might be this article and of course the OO developer siteSome introductory information about the OO file format can be found hereJODConverter is a Java library that uses the OO Java API to perform document conversions between any formats supported by OO
Outlook / PST
The Apache POI project developed some code that can read the texual contents of Outlook's MSG files. This page talks about that. Xena can convert multiple file formats -including MSG- to XML. Either the result of that conversion, or Xena's source code, may be helpful.JPST can read and extract PST files.java-libpst is a pure Java library that can access 64bit PST files.
PDF
PDF is a hard to read format. The best one can do is try to extract the text contained in a PDF file.OpenODF is a library to create PDFs built on top of iText2, but still licensed under a business-friendly license. code example - more examples - javadocsPDFBox - library that can create, merge, split and print PDFs, extract text, create images from PDFs, encrypt/decrypt PDFs, fill in PDF forms and more. See PDFBoxExample for example code of how to use it to create a PDF.FOP - library to create PDFs (and other formats) from XML by using XSL-FO transformationsFlyingSaucer - library to convert CSS-styled XHTML to PDFJPedal - library for viewing and printing PDFs, can also extract text (how to print PDFs); commercial (the LGPL version provides PDF viewing only)PDFxStream - commercial library to extract text from PDFsPDF Renderer is a more up-to-date PDF viewer that renders using Java2D. Download, Examples, Printing PDFsICEPdf is another library that can render PDFs.Qoppa offers numerous libraries for PDF-related tasksAspose.Pdf for Java is a commercial library for reading and writing PDFsjPod is a rich PDF manipulation and rendering frameworkOrsonPDF is a fast, lightweight PDF generator for the Java platform
PowerPoint
The Apache POI project developed some code that can open and (to a limited extent) edit PPT files. This page talks about it.
Project
The MPXJ library can work with several Project file formats.
QIF (used by Microsoft Money and Quicken)
Buddi and Eurobudget are Java applications that can import and export QIF files (and thus contain code you may be able to use in your application). Both are licensed under the GPL.
RTF
jRTF can create RTFsiText 2 can create RTFs: jar file, javadocsJavaCC - is a lexer/parser for which an RTF grammar is available. From that an RTF reader can be constructed.
Visio
The Apache POI project developed some code that can read Visio files. This page talks about that.
Word
POI - library to read and write DOC and DOCX files. It can also be used for extracting the text of a document.WordApi.exe is native Windows component with a Java interface, which lets you create Word documents, and alter word templates. Some impressions about it can be found here.Java2Word - library to create Word documents, especially reports, on the fly.
Something else?
If you encounter an obscure format for which no library is available, it may be feasible to create a reader for it if you have a file format description (which may be available on Wotsit, see link above). Several libraries, so-called
lexers and
parsers, are available that help in creating a reader, especially if the file format is ASCII, and not binary. You will need knowledge of regular expressions, though. Some file formats that have been tackled using this approach include RTF, CSV, HPGL and PBM/PGM/PPM. Lexers are easier to start with, but parsers can do more of the work for you. All these have ready-to-use examples on their web sites.
Lexers: JFlex (introductory article in the JavaRanch Journal)Parsers: Antlr, SableCC, JavaCC
CategoryFaq CategoryHowTo