Appearance
Java I/O (O'Reilly Java)
Just read few pages and you will realize this is a well written book. I enjoyed it and learned a lot. Java NIO is good book, but this is much better and simpler.
Java I/O (O'Reilly Java)
This is a great book, honestly I have using a lot of its know-how on my job.My advise is that all reader should know the decorator pattern to understand better the class structure, and I hope in the next version add some information about it.
Java I/O (O'Reilly Java)
Not a fan of O'Reilly books, but this one stands out because of excellent NIO coverage and topical examples. It beats the the "Java NIO" book from O'Reilly hands down. Overall I'd say this book is geared for those who want to implement but covers enough detail that it probably even soothes the more 'academic' out there (those who talk a good show but do not build real-world software).Some highlights:- You'll find good coverage of cryptographic I/O aimed at practical implementation.- Excellent NIO coverage (including basic network servers in sync and async patterns)- ZIP and JAR information including dynamic class loading- Serial, USB and Bluetooth chapters (caveat: I don't use these but read them out of curiousity)- Detailed coverage of readers/writers- And obviously good coverage of the basic java.io/net packages.As of Septemebr 2006 I find the book topical and current (even had some examples of future Java 6 code). To give you an idea of the detail offered here, there is a whole chapter (37 pages) of information on File access alone including pitfalls of cross-platform implementation. Not reading/writing files...just the trappings of opening and accessing files and directories using particular patterns, URLs, etc. The actual I/O is covered in similar depth in other chapters.I'd also like to say that I highly appreciate examples that are concise and independant. There is nothing more frustrating than flipping to the middle of a book (what we all do anyway) and going through an example...only to find out that the author is using opaque references to classes and methods he/she developed on their own in five earlier chapters (bouncycastle APIs in Java Cryto for example). This pretty much makes quick-reference difficult to impossible and this book thankfully avoids it in spades.I give it five starts because it'll be well used in several projects and because it is readable and accessible to both novice and advanced developers alike.
Java I/O (O'Reilly Java)
Great tutorial-like introduction to the Java I/O classes. Not a reference but very useful. A must buy if you want to boost your coding productivity. Plus it has the only discussion of Java-based serial and parallel port I/O that I've seen. One or two small rough spots but well worth the $'s.
Java I/O (O'Reilly Java)
This is an excellent book.After jumping around and reading about a third of it, I was already recommending to some of the newer Java programmers around me to pick it up and get a solid understanding of proper I/O use in Java. I very much recommend this as any Java programmer's second book. Right after learning the language itself, this book should be read followed closely by other O'Reilly titles such as Java Threads and Java Network Programming. Those three books will give an in-depth understanding of the core Java API's for any new Java programmer, and will be of use to you no matter how you are using Java.Even after three years as a Java developer, I have learned from this book. The author often presents algorithms in clear steps and follows those clear steps with a correct implementation. Because of this clear presentation, the chapter on compression left me for the first time with an understanding of not only how to use the java.util.zip.* classes but how they work. What I learned there in one reading is immediately applicable to what I am working on now. The sections on Files is full of tips on how to use them in a cross platform fashion. Every new Java programmer needs to read that chapter before their applications actually get used.I was also impressed that several I/O classes missing in the standard library which I have only recently developed myself were presented as well. The StreamCopier and the TeeOutputStream are extremely useful classes that should be incorporated in some fashion into the base API. I wish I had them a long time ago. (A hint: you can also use the TeeOutputStream as a 'Traitor' to peek at your I/O while your program is running and without affecting its execution.) If I have any complaint about this book, it is that there are not more of these types of utilities presented for use by the advanced Java programmer. However, I haven't finished the book yet, so they may still be hidden there.
Java I/O (O'Reilly Java)
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/OChapter 1. Introducing I/OChapter 2. Output StreamsChapter 3. Input StreamsPart PART II: Data SourcesChapter 4. File StreamsChapter 5. Network StreamsPart PART III: Filter StreamsChapter 6. Filter StreamsChapter 7. Print StreamsChapter 8. Data StreamsChapter 9. Streams in MemoryChapter 10. Compressing StreamsChapter 11. JAR ArchivesChapter 12. Cryptographic StreamsChapter 13. Object SerializationPart PART IV: New I/OChapter 14. BuffersChapter 15. ChannelsChapter 16. Nonblocking I/OPart PART V: The File SystemChapter 17. Working with FilesChapter 18. File Dialogs and ChoosersPart PART VI: TextChapter 19. Character Sets and UnicodeChapter 20. Readers and WritersChapter 21. Formatted I/O with java.textPart PART VII: DevicesChapter 22. The Java Communications APIChapter 23. USBChapter 24. The J2ME Generic Connection FrameworkChapter 25. BluetoothPart PART VIII: AppendixCharacter Sets