binary file handling (was: no subject)

Hello all, Ketil Malde wrote:
This is what I find in System.IO (ghci> :b System.IO):
openBinaryFile :: FilePath -> IOMode -> IO Handle openBinaryTempFile :: FilePath -> String -> IO (FilePath, Handle) hSetBinaryMode :: Handle -> Bool -> IO ()
so you have the option of either using openBinaryFile or openFile and using hSetBinaryMode to true. I guess - I've never had to use them.
I can't find a readBinaryFile either, but writing one might be a good excercise?
Makes me wonder whether one should have binary be the default? I'm a stranger in Windows-land, but are there cases where you want reading of a file to be terminated on ^Z? Seems pretty awful to me.
I ran into this same problem when trying to write a binary file filter; see: http://praisecurseandrecurse.blogspot.com/2007/04/haskell-for-short-attentio... Back then I got some help on #haskell to figure out how to write ReadBinaryFile. I got that working, and wrote "This works fine, although I would humbly suggest that GHC's standard library should provide easy access to binary files; while the solution is pretty trivial, it is a wart." I would not go so far as to say that binary should be the default mode for opening and reading a file, but I would say that the two should be made equally simple and clear options in the standard library. Paul R. Potts -- Paul R. Potts - paul@thepottshouse.org - http://thepottshouse.org
participants (1)
-
Paul R. Potts