I just KNEW I was going to get somebody started!
}:> *evil grin*
>Well, to be sure, this doesn't give you a filehandle. It gives you an output
>stream that goes to a filesystem, buffers it, and then provides utility
>functions.
This is exactly what I am talking about. Writing to file using Java IO is like using a supercomputer to add 1 + 1. Java is a full-featured language for the enterprise. However, this means that every little thing now requires a "sledgehammer" approach to solve it.
Although some people (possibly those bitten by radioactive spiders?) will froth at the mouth from this thought, I want to state once again: I am NOT trying to solve the world's hunger problems or create peace in the Middle East. I am just trying to write a String to a file. That is all. 99% of all the file-writing code just wants to do that and nothing else. Yet this "very simple" functionality is not at all that simple in Java. In fact it is awkward for almost everyone who does not deal with this every day.
Sure, I can write an OO language that will require all sorts of conversions and writers to declare a variable. Because, hey, I twill not just declare a variable!! (to paraphrase your statement above) "It give you an pointer to some memory address, allocates memory, and then provides utility functions."
So a simple statement used 99.99% of the time:
int i = 0;
to Joseph's indescribable delight, can now become:
int i = new IntegerWriter(new MemoryAllocator(new Integer(0)));
And you do not need to be a super powered freak with adamantine retractable claws and a bad temper to see what a waste of time this idle exercise would be. Perl for example, recognizes that, so the code to write to file is very simple. Again, I am NOT talking about 1% of the time when you need to tweak something. I AM talking about a simple function you do 99% of the time. You really do not need "Six or a half dozen" ways to do this simple thing.
To think that Java is perfect for everything and fits every need is ridiculous. Our tools must keep evolving in order to remain useful -- Java IO should be no exception.
Greg
-----Original Message-----
From: Joseph Ottinger [mailto:[EMAIL PROTECTED]]
Sent: Wednesday, August 21, 2002 11:13 AM
To: JDJList
Subject: [jdjlist] RE: Java IO Question
>From: Greg Nudelman <[EMAIL PROTECTED]>
>This is one of a few things I find of extreme annoyance in Java. I do not
>think any other modern programming language makes you remember:
>
>new PrintWriter(new BufferedWriter(new FileWriter("foo.out")));
>
>just to get a file handle!! (This is one area where C syntax may even be
>easier to remember then Java... Scary!)
Well, to be sure, this doesn't give you a filehandle. It gives you an output
stream that goes to a filesystem, buffers it, and then provides utility
functions. With great power comes great responsibility, and all that rot.
Maybe people would remember that if they were all bitten by radioacive
spiders and mutated into genetic freaks who would walk on walls.
>I can never remember the syntax, as I have to write to a file maybe 5-6
>times a year. And just imagine being tested on an interview by some moron
>who just looked it up himself that very morning. ("Greg, how do you
>implement reading the binary file vs. ASCII file in Java?") So, Mr.
>Bright,
>how often do YOU write that code (without docs and Google)?
It's orthogonal: streams are binary, writers aren't. Verrrrry difficult to
remember.
>Hmmm... Maybe I should just write my own utility that I can at least
>remember the syntax for.
>
>I'm thinking something like:
>
>BufferedFileWriter fw = new BufferedFileWriter("foo.out");
>fw.write(stringBuffer.toString());
>
>
>For PrintWriters:
>
>PrintingBufferedFileWriter pfw = new PrintingBufferedFileWriter("foo.out");
>pfw.print(stringBuffer.toString());
>
>To be fair, I guess I have the advantage - I can go back and refactor my
>stuff, and I do not need to be v1.0 backward compatible...
And even fairer, you end up writing classes to do SPECIFICALLY what you
want, and if you actually want to step outside your little lines, you end up
right back where you were, relying on Java's piped input architecture.
*shrug* Six or a half dozen, it doesn't matter.
-----------------------------------------------
Joseph B. Ottinger [EMAIL PROTECTED]
http://enigmastation.com IT Consultant
_________________________________________________________________
MSN Photos is the easiest way to share and print your photos:
http://photos.msn.com/support/worldwide.aspx
To change your membership options, refer to:
http://www.sys-con.com/java/list.cfm
http://www.sys-con.com/java/list.cfm
