Groups | Search | Server Info | Keyboard shortcuts | Login | Register [http] [https] [nntp] [nntps]


Groups > comp.lang.java.programmer > #10285

Re: Fav. Memory Stream Impl.

From Robert Klemme <shortcutter@googlemail.com>
Newsgroups comp.lang.java.programmer
Subject Re: Fav. Memory Stream Impl.
Date 2011-11-28 08:14 +0100
Message-ID <9jgqmvFjc4U1@mid.individual.net> (permalink)
References <jaojsb$hso$1@news.albasani.net> <4ed0101b$0$282$14726298@news.sunsite.dk> <jaqhed$23v$1@news.albasani.net> <9jflnkFnrgU1@mid.individual.net> <jaug5s$hsi$1@news.albasani.net>

Show all headers | View raw


On 11/28/2011 12:13 AM, Jan Burse wrote:
> Robert Klemme schrieb:
>>
>> Still, why do you want to do this? What problem are you trying to
>> solve? I'm not convinced that it is a good idea - especially when using
>> unbounded buffers.
>
> A pipe is not a memory stream. In a pipe the reader
> does read where the writer does write. But I don't
> have this requirement.
>
> The only requirement I have, is that I can use
> the memory streams in place of >>TEMPORARY FILES<<.
> Whereas >>TEMPORARY FILES<< have a name and usually
> exist on some media.
>
> The memory streams should not exist on some media,
> except in the memory. But they should share with
>> >TEMPORARY FILES<< multiple readers / writers and
> positioninng. Since I can use a >>TEMPORARY FILES<<
> name and open a RandomAccessFile with it.
>
> So basically in my application I would like to have
> some class, call it MemoryStream. And It would like
> to be able to instantiate it. And this instance serves
> than as a kind of a file name.
>
> So this instance I should be able to use where I normally
> would use the >>TEMPORARY FILES<< name. The only places
> that come to my mind are:
> - creating an input stream from a file name, should
> then work from a memory stream instance.
> - creating an output stream from a file name, should
> then work from a memory stream instance.
> - creating a random acccess file from a file name,
> should then work from a memory stream instance.
>
> What the memory stream instance will have in common
> with a >>TEMPORARY FILES<< name, is that it will go
> away when the application closes. So they are very
> similar to >>TEMPORARY FILES<< with the option delete
> on close.
>
> Also I would like to be able to use the same memory stream
> to open input streams, output streams, random access files,
> as many as I want. This is also provided by >>TEMPORARY
> FiLES<<, once a >>TEMPORARY FILES<< name is established, it
> can be used for all kinds of stuff.
>
> Here is a little example:
> A large clip board: This could be realized by a temporary
> file. When you make the copy operation, you simply write
> the copied content into the temporary file. When you make
> the past operation you reopen the temporary file and
> read the content that should be pasted from it.
>
> The above could be realized by even passing the >>TEMPORARY
> FILES<< name around in the system clipboard, so that the copy
> paste works across applications. Provided that the applications
> understand the content type.
>
> But memory streams cannot passed around like this. Here is
> the difference to >>TEMPORARY FILES<<. In their simple
> implementation they are confined to the application that
> created them.
>
> Of course we could extend them and provide some RMI extension
> of them, or what ever, so that the a memory stream references
> becomes mobile. Or we could implement them in special shared
> memory of the operating system, so that a direct shared access
> from multiple applications is possible.
>
> This mobility and shared access across multiple application,
> which is a property of >>TEMPORARY FILES<<, is not required
> for the memory streams I am looking for. So I guess if my
> grandmother could program as she can knit pullovers for me,
> she might do a memory stream class for me.
>
> But unfortunately she knows only COBOL and I am looking for
> a Java library. But she assured me that something like this
> must exist on the web, and that I don't need to go into lengths
> to code it by myself. So she told me:
>
> It's not difficult, but why reinvent the wheel?

There is a lot of "could" and "should" in there but no description of a 
real problem you are trying to solve.  Basically if you want to use 
other libraries which depend on java.io to open files you have little 
chance to smuggle a "memory stream" in there without going through the 
effort to modify byte code of classes.  So your "memory stream" could be 
made to work easily with your own code only.  But then, you'd probably 
be far better off using a data structure with specific type and not 
sequences of bytes.  If you need to store unstructured text, you can use 
a StringBuffer.  If you need to store other kinds of data you can use 
any of the classes from java.util.

Kind regards

	robert


PS: I hope you are aware that writing to files does not necessarily 
create disk IO.  For short lived temporary files chances are that you 
delete the file before it got written to disk.  And then there are in 
memory file systems available which you can mount and use like any other 
file system and which hold all the data in memory only.

Back to comp.lang.java.programmer | Previous | NextPrevious in thread | Next in thread | Find similar | Unroll thread


Thread

Fav. Memory Stream Impl. Jan Burse <janburse@fastmail.fm> - 2011-11-25 18:39 +0100
  Re: Fav. Memory Stream Impl. markspace <-@.> - 2011-11-25 10:34 -0800
    Re: Fav. Memory Stream Impl. Jan Burse <janburse@fastmail.fm> - 2011-11-25 20:59 +0100
      Re: Fav. Memory Stream Impl. markspace <-@.> - 2011-11-25 12:16 -0800
        Re: Fav. Memory Stream Impl. Jan Burse <janburse@fastmail.fm> - 2011-11-25 21:23 +0100
          Re: Fav. Memory Stream Impl. Jan Burse <janburse@fastmail.fm> - 2011-11-25 21:23 +0100
            Re: Fav. Memory Stream Impl. markspace <-@.> - 2011-11-25 13:00 -0800
              Re: Fav. Memory Stream Impl. Jan Burse <janburse@fastmail.fm> - 2011-11-25 22:32 +0100
                Re: Fav. Memory Stream Impl. Jan Burse <janburse@fastmail.fm> - 2011-11-25 22:36 +0100
                Re: Fav. Memory Stream Impl. Robert Klemme <shortcutter@googlemail.com> - 2011-11-25 23:22 +0100
  Re: Fav. Memory Stream Impl. Arne Vajhøj <arne@vajhoej.dk> - 2011-11-25 17:00 -0500
    Re: Fav. Memory Stream Impl. Jan Burse <janburse@fastmail.fm> - 2011-11-26 12:10 +0100
      Re: Fav. Memory Stream Impl. Robert Klemme <shortcutter@googlemail.com> - 2011-11-27 21:43 +0100
        Re: Fav. Memory Stream Impl. Jan Burse <janburse@fastmail.fm> - 2011-11-28 00:13 +0100
          Re: Fav. Memory Stream Impl. Robert Klemme <shortcutter@googlemail.com> - 2011-11-28 08:14 +0100
            Re: Fav. Memory Stream Impl. Jan Burse <janburse@fastmail.fm> - 2011-11-28 09:10 +0100
              Re: Fav. Memory Stream Impl. Robert Klemme <shortcutter@googlemail.com> - 2011-11-28 02:47 -0800
                Re: Fav. Memory Stream Impl. Jan Burse <janburse@fastmail.fm> - 2011-11-28 14:58 +0100
                Re: Fav. Memory Stream Impl. Robert Klemme <shortcutter@googlemail.com> - 2011-11-28 19:52 +0100
                Re: Fav. Memory Stream Impl. Jan Burse <janburse@fastmail.fm> - 2011-11-29 00:22 +0100
                Re: Fav. Memory Stream Impl. Jan Burse <janburse@fastmail.fm> - 2011-11-29 00:39 +0100
                Re: Fav. Memory Stream Impl. Gene Wirchenko <genew@ocis.net> - 2011-11-28 17:03 -0800
                Re: Fav. Memory Stream Impl. Arne Vajhøj <arne@vajhoej.dk> - 2012-02-06 21:06 -0500
                Re: Fav. Memory Stream Impl. Jan Burse <janburse@fastmail.fm> - 2012-02-07 09:59 +0100
                Re: Fav. Memory Stream Impl. Daniel Pitts <newsgroup.nospam@virtualinfinity.net> - 2012-02-07 09:59 -0800
                Re: Fav. Memory Stream Impl. Arne Vajhøj <arne@vajhoej.dk> - 2012-02-07 21:02 -0500
                Re: Fav. Memory Stream Impl. Jan Burse <janburse@fastmail.fm> - 2012-02-08 09:55 +0100
                Re: Fav. Memory Stream Impl. "John B. Matthews" <nospam@nospam.invalid> - 2012-02-08 12:18 -0500
                Re: Fav. Memory Stream Impl. Jan Burse <janburse@fastmail.fm> - 2012-02-08 20:23 +0100
                Re: Fav. Memory Stream Impl. Gene Wirchenko <genew@ocis.net> - 2012-02-08 13:18 -0800
                Re: Fav. Memory Stream Impl. Gene Wirchenko <genew@ocis.net> - 2012-02-08 13:18 -0800
                Re: Fav. Memory Stream Impl. Mayeul <mayeul.marguet@free.fr> - 2011-11-29 12:25 +0100
                Re: Fav. Memory Stream Impl. Jan Burse <janburse@fastmail.fm> - 2011-11-29 14:37 +0100
                Re: Fav. Memory Stream Impl. Lew <lewbloch@gmail.com> - 2011-11-29 07:37 -0800
                Re: Fav. Memory Stream Impl. Martin Gregorie <martin@address-in-sig.invalid> - 2011-11-29 20:26 +0000
                Re: Fav. Memory Stream Impl. Jan Burse <janburse@fastmail.fm> - 2011-11-29 21:34 +0100
                Re: Fav. Memory Stream Impl. Martin Gregorie <martin@address-in-sig.invalid> - 2011-11-29 21:05 +0000
                Re: Fav. Memory Stream Impl. Jan Burse <janburse@fastmail.fm> - 2011-11-29 22:59 +0100
                Re: Fav. Memory Stream Impl. markspace <-@.> - 2011-11-29 14:06 -0800
                Re: Fav. Memory Stream Impl. "John B. Matthews" <nospam@nospam.invalid> - 2011-11-29 21:23 -0500
                Re: Fav. Memory Stream Impl. Martin Gregorie <martin@address-in-sig.invalid> - 2011-11-30 01:08 +0000
                Re: Fav. Memory Stream Impl. Jan Burse <janburse@fastmail.fm> - 2011-11-30 14:03 +0100
      Re: Fav. Memory Stream Impl. Arne Vajhøj <arne@vajhoej.dk> - 2012-02-06 20:59 -0500
  Re: Fav. Memory Stream Impl. Roedy Green <see_website@mindprod.com.invalid> - 2011-11-26 00:26 -0800
    Re: Fav. Memory Stream Impl. Jan Burse <janburse@fastmail.fm> - 2011-11-26 12:05 +0100
      Re: Fav. Memory Stream Impl. Lew <lewbloch@gmail.com> - 2011-11-26 11:22 -0800
        Re: Fav. Memory Stream Impl. Jan Burse <janburse@fastmail.fm> - 2011-11-26 20:44 +0100
          Re: Fav. Memory Stream Impl. Lew <lewbloch@gmail.com> - 2011-11-26 17:15 -0800
    Re: Fav. Memory Stream Impl. Jan Burse <janburse@fastmail.fm> - 2012-01-28 00:11 +0100

csiph-web