23.07.2013 Views

Java IO.pdf - Nguyen Dang Binh

Java IO.pdf - Nguyen Dang Binh

Java IO.pdf - Nguyen Dang Binh

SHOW MORE
SHOW LESS

You also want an ePaper? Increase the reach of your titles

YUMPU automatically turns print PDFs into web optimized ePapers that Google loves.

Appendix A. Additional Resources<br />

<strong>Java</strong> I/O<br />

When I began work on this book, I thought it would take me about 200 pages and about two<br />

months. Now, more than a year and 500 pages later, I can see that I/O is a far larger, more<br />

important, and more encompassing topic than I originally guessed. Many chapters could<br />

easily lead to books of their own. Indeed, several (Chapter 5, and Chapter 10) already are<br />

other books.<br />

Since I can't possibly say everything there is to say about all these fascinating topics I've<br />

touched on in one page or another in this tome, I'd like to point you to several books, mailing<br />

lists, and web sites that explore some of the issues raised in this book in greater detail. Some<br />

of these are I/O-specific; some are mostly tangential. However, they're all interesting and<br />

worthy of further study and thought.<br />

A.1 Digital Think<br />

Digital Think (http://www.digitalthink.com/) offers web-based training courses for<br />

programmers, developers, system administrators, and end users in C, C++, <strong>Java</strong>, Windows,<br />

web development, object-oriented programming, and more. This book grew out of two webbased<br />

courses I wrote for Digital Think, <strong>Java</strong> Streams<br />

(http://www.digitalthink.com/catalog/cs/cs108/) and <strong>Java</strong> Readers and Writers<br />

(http://www.digitalthink.com/catalog/cs/cs208/). Although this book is far more<br />

comprehensive than those two courses, they're a good way to get started with this material,<br />

especially if you think you need a personal helping hand or a leg up. Each course includes<br />

graded exercises, a hands-on course project, and tutors to answer your questions and assist<br />

you with the difficult parts.<br />

A.2 Design Patterns<br />

At the time I was writing the first draft of this book, I also happened to be learning about<br />

design patterns. Gradually, it became obvious that much of the AWT was written by<br />

programmers who had patterns on the brain. The java.awt.Toolkit class is a textbook<br />

example of the "abstract factory" pattern. The URL class's openConnection() method is a<br />

factory method. The Reader and Writer classes are decorators on top of InputStream and<br />

OutputStream. The engine classes in the JCE are proxies, and I could cite many more<br />

examples. Much of the class library—including the java.io package—has been designed<br />

with design patterns, and it will all make a lot more sense if you're familiar with the standard<br />

patterns.<br />

The seminal text on the subject is Design Patterns, by Erich Gamma, Richard Helm, Ralph<br />

Johnson, and John Vlissides (Addison-Wesley, 1995). The four authors are colloquially<br />

known as the "Gang of Four," and the book is often cited informally as "GoF." The 23<br />

patterns covered in GoF are rapidly becoming part of the vocabulary of the object-oriented<br />

programming community. Design patterns are also beginning to be covered in many more<br />

introductory books about object-oriented programming and <strong>Java</strong>.<br />

There are also several extremely active mailing lists and web sites devoted to design patterns.<br />

To subscribe to the patterns@cs.uiuc.edu list send email to patterns-request@cs.uiuc.edu with<br />

459

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!