All of Java's Input/Output (I/O) facilities are based on streams, which provide simple ways to read and write data of different types. Java provides many different kinds of streams, each with its own application. The universe of streams is divided into four large categories: input streams and output streams, for reading and writing binary data; and readers and writers, for reading and writing textual (character) data. You're almost certainly familiar with the basic kinds of streams--but did you know that there's a CipherInputStream for reading encrypted data? And a ZipOutputStream for automatically compressing data? Do you know how to use buffered streams effectively to make your I/O operations more efficient? Java I/O tells you all you ever need to know about streams--and probably more.
A discussion of I/O wouldn't be complete without treatment of character sets and formatting. Java supports the UNICODE standard, which provides definitions for the character sets of most written languages. Consequently, Java is the first programming language that lets you do I/O in virtually any language. Java also provides a sophisticated model for formatting textual and numeric data. Java I/O shows you how to control number formatting, use characters aside from the standard (but outdated) ASCII character set, and get a head start on writing truly multilingual software.
Java I/O includes:
Coverage of all I/O classes and related classes
In-depth coverage of Java's number formatting facilities and its support for International character sets
Basic I/O
Chapter 1 Introducing I/O
What Is a Stream?
Numeric Data
Character Data
Readers and Writers
The Ubiquitous IOException
The Console: System.out, System.in, and System.err
Security Checks on I/O
Chapter 2 Output Streams
The OutputStream Class
Writing Bytes to Output Streams
Writing Arrays of Bytes
Flushing and Closing Output Streams
Subclassing OutputStream
A Graphical User Interface for Output Streams
Chapter 3 Input Streams
The InputStream Class
The read( ) Method
Reading Chunks of Data from a Stream
Counting the Available Bytes
Skipping Bytes
Closing Input Streams
Marking and Resetting
Subclassing InputStream
An Efficient Stream Copier
Data Sources
Chapter 4 File Streams
Reading Files
Writing Files
File Viewer, Part 1
Chapter 5 Network Streams
URLs
URL Connections
Sockets
Server Sockets
URLViewer
Filter Streams
Chapter 6 Filter Streams
The Filter Stream Classes
The Filter Stream Subclasses
Buffered Streams
PushbackInputStream
Print Streams
Multitarget Output Streams
File Viewer, Part 2
Chapter 7 Data Streams
The Data Stream Classes
Reading and Writing Integers
Reading and Writing Floating-Point Numbers
Reading and Writing Booleans
Reading Byte Arrays
Reading and Writing Text
Miscellaneous Methods
Reading and Writing Little-Endian Numbers
Thread Safety
File Viewer, Part 3
Chapter 8 Streams in Memory
Sequence Input Streams
Byte Array Streams
Communicating Between Threads with Piped Streams
Chapter 9 Compressing Streams
Inflaters and Deflaters
Compressing and Decompressing Streams
Working with Zip Files
Checksums
JAR Files
File Viewer, Part 4
Chapter 10 Cryptographic Streams
Hash Function Basics
The MessageDigest Class
Digest Streams
Encryption Basics
The Cipher Class
Cipher Streams
File Viewer, Part 5
Advanced and Miscellaneous Topics
Chapter 11 Object Serialization
Reading and Writing Objects
Object Streams
How Object Serialization Works
Performance
The Serializable Interface
The ObjectInput and ObjectOutput Interfaces
Versioning
Customizing the Serialization Format
Resolving Classes
Resolving Objects
Validation
Sealed Objects
Chapter 12 Working with Files
Understanding Files
Directories and Paths
The File Class
Filename Filters
File Filters
File Descriptors
Random-Access Files
General Techniques for Cross-Platform File Access Code
Chapter 13 File Dialogs and Choosers
File Dialogs
JFileChooser
File Viewer, Part 6
Chapter 14 Multilingual Character Sets and Unicode
Our look is the result of reader comments, our own experimentation, and feedback from distribution channels. Distinctive covers complement our distinctive approach to technical topics, breathing personality and life into potentially dry subjects. Hanna Dyer designed the cover of this book, based on a series design by Edie Freedman. The image was photographed by Kevin Thomas and manipulated in Adobe Photoshop by Michael Snow. The cover layout was produced with Quark XPress 3.3 using the Bodoni Black font from URW Software and BT Bodoni Bold Italic from Bitstream. The inside layout was designed by Nancy Priest. The heading font is Bodoni BT; the text font is New Baskerville. Whenever possible, our books use RepKover, a durable and flexible lay-flat binding. If the page count exceeds RepKover's limit, perfect binding is used. Clairemarie Fisher O'Leary was the production editor and copyeditor for Java I/O; Sheryl Avruch was the production manager; Madeleine Newell, Ellie Cutler, and Debby English provided quality control. Ruth Rautenberg wrote the index. Robert Romano created the illustrations using Adobe Photoshop 4 and Macromedia FreeHand 7. Text was prepared by Mike Sierra in FrameMaker 5.5.
Oreilly has another gem with this very nicely layed out coverage of Java I/O. The book does a good job of explaining the basics of the InputStream and OutputStream classes and also has an excellent discussion of the nature of files on different platforms and writing portable file code.
6/21/2000
(1 of 1 customers found this review helpful)
5.0
Java I/O Review
By suresh v kumar
from Undisclosed
Comments about oreilly Java I/O:
I have only programmed little in Java. When I had the requirement to develop a platform independent utility to select,display,compress and FTP the file. I found this book answering all my questions, and the examples are very useful and helped me to get my project completed in a very short time.
Thanks to the author, also found the authors support page for this book very useful.
Looking forward for other book(s) from the same author. (JAVA Network Programming - 2nd Edition).
This is a great book for any Java Programmer who wanted to do anything with files.