Wattle Software - producers of XMLwriter XML editor
 Bookstore Home | XMLwriter Home | Search | Site Map 
XML Related
 General XML
 XSLT & Stylesheets
 XHTML
 SGML
 XML DTDs
 XML Schema
Web Development
 Web Graphics
 HTML
 Dynamic HTML
Web Services
 General Web Services
 UDDI
 SOAP
 WSDL
 Programming/Scripting 
 PHP Programming
 Perl Programming
 Active Server Pages
 Java Server Pages
 JavaScript
 VBScript
 .NET Programming
 
XMLwriter
 About XMLwriter
 Download XMLwriter
 Buy XMLwriter
XML Resources
 XML Links
 XML Training
 The XML Guide
 XML Book Samples
 

Java I/O (O'Reilly Java)


By Elliotte Rusty Harold
 
Image of: Java I/O (O'Reilly Java)
Pricing Details:

List Price:$39.95
You save:-- (--)
Your Price:Currently Unavailable
Buy Now

Book Details:

Format:Paperback, 596 pages.
Publisher:O'Reilly Media, Inc. 1999-03-16
ISBN:1565924851

Average Customer Rating:

4.0 4 out of 5 stars (28 reviews)

Editorial Reviews:

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

Because it doesn't provide a printf() function like C/C++, some developers think Java isn't up to snuff with files and streams. Author Rusty Harold Elliotte argues against this notion in Java I/O, a book that shows how Java's stream support can help simplify network programming, internationalization, and even compression and encryption.

The book opens with an overview of Java's stream capabilities. (The author defends Java's lack of support for console input/output (I/O) since today's applications use graphical user interfaces anyway.) He shows how to open, read, and write local files in Java applications. His file viewer example presents data in a variety of formats. (This example is improved several times until it winds up supporting different international character sets by the end of the book.)

Next the author covers network programming using URL and network streams, including sockets. Sections on filters show how classes can filter out characters within streams. The tour moves forward to cover data streams, which permit streaming of Java's primitive data types. Details on how to communicate within Java programs using pipes follow. In a notable chapter, the author thoroughly explicates Java's support for encryption, including hashing, the Data Encryption Standard (DES) algorithm, and ciphers.

The last portion of the book explains object serialization, which allows Java objects to save and restore their state, plus it includes sections on Java's support for data compression (and ZIP files) and multilingual Unicode character sets. (Java is prepared to handle virtually any of the world's languages with its reader and writer classes.) Finally, the author shows how you can format output in Java using its support for width and numeric precision APIs.

In all, Elliotte makes a good case that Java streams are a flexible and powerful part of the language, and certainly not a limitation. --Richard Dragan


Customer Reviews:

Displaying 6 to 10 of 28 total reviews (Page 2 of 6):

5 out of 5 stars Great 2nd edition of a comprehensive book on Java I/O

The first edition of Java I/O is now seven years old, and it is definitely time for a second edition considering all that has transpired. Note that the second edition was released in May 2006, so all reviews older than that are referring to the first edition. In this second edition there are basically eight entirely new chapters added to the original seventeen. It is probably worth the price of an upgrade especially if you are interested in Java I/O as it pertains to devices. I review this second edition in the context of comparing it to the first edition.

Chapters 1 through 5 are virtually the same.
Chapter six, "Filter Streams", has had one section - Print Streams - removed and had another section on the ProgressMonitorInputStream class added. ProgressMonitorInputStream is a unique filter stream hiding in the javax.swing package that displays progress bars that indicate how much of a stream has been read and how much remains to be read, and this book shows how to use it when reading unusually large files. The section on Print Streams that was removed from chapter six now has an entire chapter dedicated to it. This is because, starting in Java 5, the familiar PrintStream class has become a lot more powerful and interesting. Besides basic console output, it now provides extensive capabilities for formatting numbers and dates in a straightforward and easy fashion.

The chapters on data streams, streams in memory, and compressing streams are virtually unchanged from the first edition. However, the "Jar Files" section from the "compressing streams" chapter has been removed and now has an entire chapter dedicated to it. In this chapter, among other topics, the author explains the Pack200 compression format and evangelizes the increasingly popular technique of hiding noncode resources like images and data files inside JAR files. The two chapters on cryptographic streams and object serialization are basically the same as before, except that one section has been added on the JavaDoc in the serialization chapter.

The next section of the book, on New I/O, is completely new material and is comprised of three chapters. The java.nio packages provide nonblocking and memory-mapped I/O, and chapters 14 through 16 cover these powerful new abilities in depth. The new I/O model is based on channels and buffers instead of streams. This model doesn't replace traditional stream-based I/O for many uses. However, it is significantly faster in one important use case: servers that process many simultaneous clients.

The next two sections of the book, "The File System" and "Text", pretty much mimic chapters 12 through 16 of the first edition.

The final section of the book, "Devices", has almost completely new material. Some of the most exciting developments since the first edition have occurred in the world of small devices,in both peripherals such as GPS receivers that connect to a host computer and devices such as Palm Pilots that are themselves increasingly powerful computers. Treatment of both of these has been dramatically expanded in this edition. For those readers working with serial and parallel port devices, the Java Communications API chapter has been upgraded to version 3.0. However, in 2006 more and more devices use faster USB ports instead. Consequently, Chapter 23 covers the new Java USB API in depth. For smaller devices that can't quite run full Java but need to perform I/O nonetheless, J2ME offers the Generic Connection Framework (GCF). Chapter 24 covers this alternative to the traditional I/O framework. Finally, Chapter 25 uses the GCF to communicate over one of the newest I/O buses, the Bluetooth API used for wireless communications with a variety of peripherals.

I was very pleased with the first edition of this book, and I have an even higher recommendation for this second edition. There are clear descriptions of how to use the Java I/O classes as well as well-commented code examples for everything. However, if you are just recently coming from a C or C++ programming perspective, the Java I/O model is so different that it will likely be a shock no matter how good the teacher is, and Mr. Harold is an excellent one. I notice that Amazon does not show the table of contents, so I do that here:
Part PART I: Basic I/O
Chapter 1. Introducing I/O
Chapter 2. Output Streams
Chapter 3. Input Streams
Part PART II: Data Sources
Chapter 4. File Streams
Chapter 5. Network Streams
Part PART III: Filter Streams
Chapter 6. Filter Streams
Chapter 7. Print Streams
Chapter 8. Data Streams
Chapter 9. Streams in Memory
Chapter 10. Compressing Streams
Chapter 11. JAR Archives
Chapter 12. Cryptographic Streams
Chapter 13. Object Serialization
Part PART IV: New I/O
Chapter 14. Buffers
Chapter 15. Channels
Chapter 16. Nonblocking I/O
Part PART V: The File System
Chapter 17. Working with Files
Chapter 18. File Dialogs and Choosers
Part PART VI: Text
Chapter 19. Character Sets and Unicode
Chapter 20. Readers and Writers
Chapter 21. Formatted I/O with java.text
Part PART VII: Devices
Chapter 22. The Java Communications API
Chapter 23. USB
Chapter 24. The J2ME Generic Connection Framework
Chapter 25. Bluetooth
Part PART VIII: Appendix
Character Sets

1 out of 5 stars Pass On This One

You'd probably do better following the tutorials on the Sun site.

1 out of 5 stars Shame O'Reilly, shame!

I picked up this book to cover multilingual charset issues, which are missing in all the standard Java resources but neatly listed in this title's contents/index. Great, I thought, something for those of us who speak English but sell software to the other 93% of the world.
After I had laid my [money] down at the bookstore, I found out the sordid truth- the author is a newbie in regards to the multilingual issues but didn't let it stop him from writing down some shockers. To be nice, he probably got a little enthusiastic about Java's genuinely wide multilingual capabilities and tried to promote it, but some parts of this book are anti-education, end of story...

1 out of 5 stars I'd pass on this one.

This book does a fair job of covering the topic. I found it semi-useful. I would not recommend it however. Other books give you more value for the money. I would recommend the Java Tutorial series or; Just Java 2 by Peter Van der Linden, those are great learning books. They give you real value for your money. They do a great job of helping you learn what you need to, to get your programming assignments done at work. The Sun Java website has also been very helpful to me. There, you can find anything you need to without wasting 50 bucks for a book that does not help you that much.

1 out of 5 stars Once again, the author has made some terrible choices

This book covers Java I/O in a relatively competent fashion.

However, the author, Mr. Harold, chose to use his very popular website on the day of terror--September 11, 2001--to condemn America for her foreign policy and to label the many analysts calling for reprisals "white war mongers". The implication--inescapable to me--was that we had it coming. In the several days following, he continued in the vein, never even bothering with a single sentence condemning the terrorists.

This bothered me a great deal. If it bothers you, I suggest you look at other books covering Java IO (Core Java 2 or Sun's Java Library books that cover IO come to mind).

More Customer Reviews:
Previous Page Next Page


Customers who bought this book were also interested in:


Java Generics and Collections


Java Network Programming


Java Concurrency in Practice


Java Threads (Java Series (O'Reilly & Associates))


Java NIO

 

Find similar books by category...


Search for more:

Search books:  



Google
 
Web XMLwriter.net




Last updated: Wed Nov 19 11:48:57 CST 2008
© Wattle Software 2007. All rights reserved.