The magazine of the Melbourne PC User Group

For the bookshelf - Java I/O
Bob Burt
bobburt@melbpc.org.au

0'Reilly & Associates have developed an area of expertise for themselves by publishing books on open source software (a stylised name for free software), the Internet, programming, Windows NT and UNIX. Not the least amongst their offerings is a formidable array of books on Java, currently comprising at least 18 titles. Of these, five have been written by the author of Java 1/O, Elliotte Rusty Harold.

While readers who have at least been considering developing Web pages on the Internet will be aware of Java as a language, most of us probably regard it pre-eminently as a tool for creating animated icons (applets). However, this is but one example of what the publishers term the language's Webcentric design. When coupled with its clean structure and automated memory management, Java can then be seen as a development tool of great appeal.

Elliotte Harold's previous book in the Java Series was Java Network Programming. After publication, he noticed that many questions he received related to input and output (1/O), rather than to network programming itself. So when Java 1.1 was released with a greatly enlarged and therefore much more powerful java.io package and many new I/O classes, it became evident that a book which fully described Java 1/O was warranted.

The book contains 17 chapters, divided into four parts plus two appendixes.

Part I understandably introduces the basic architecture and design of the java.io package and then moves on to instruction in the use of both Output Streams and Input Streams.

Part II is concerned with Data Sources, detailed in a chapter on File Streams and another on Network Streams. The File Stream chapter introduces the design of a File Viewer program, which is progressively developed in later chapters.

Filter Streams are described and explained in Part III, the relevant chapters being Filter Streams, Data Streams, Streams in Memory, Compressing Streams and Cryptographic Streams.

Finally Part IV deals with more advanced topics and some miscellany. These include chapters on Object Serialisation , Working with Files, File Dialogs, Multilingual Character Sets, Readers & Writers, Formatted 1/O and the Java Communications API.

Appendix A details additional resources, such as books, mailing lists and web sites which relate to some of the issues raised in the book. Appendix B describes character sets and points to where further details can be obtained on the Internet for various character sets relating to specific languages which are included in Unicode. One of the great strengths of this book lies in the orderly mass of code examples provided, which is optimised for legibility rather than speed. You can access the complete set of examples on the Internet from ftp://metalab.unc.edu/pub/languages/java/javafaq/

Examples that are likely to be re-used are placed in the com.macfaq package. Others that simply demonstrate a point or run as a stand alone program or apples are placed in the default package.

The author assumes that the reader has a basic familiarity with Java - that means being thoroughly familiar with its syntax, comfortable with object-oriented programming and its terms (such as instances, objects and classes) and experienced in writing at least simple applications and applets.

If you pass muster in these areas you are likely to find this book of great interest and enjoyment.

Elliotte Harold conducts a popular independent Java site (Cafe au Lait) on the Web at http://sunsite/unc.edu/javafaq/  <== Note: This site appears to be no longer active

The site features almost daily news updates on Java topics, paying particular attention to any new material closely related to his books.

 

Elliotte Rusty Harold: Java 1/0   ISBN: 1-56592-485-1 
Published by O'Reilly & Associates, Inc. 
574 pages 
RRP $US32.95

 


Reprinted from the November 1999 issue of PC Update, the magazine of Melbourne PC User Group, Australia

[About Melbourne PC User Group]