Class InMemoryFile

java.lang.Object
org.ojalgo.netio.InMemoryFile

public class InMemoryFile extends Object
An in-memory "file" that can be used with some ToFileWriter and/or
invalid reference
FromFileReaderr
implementations instead of a File.

To dynamically create file contents that only exist in memory (for download): Feed an instance of InMemoryFile rather than File to a ToFileWriter that support doing so (like the TextLineWriter), and keep a reference to the InMemoryFile instance. When done writing you get the (file) contents from that instance.

To parse some data you have in memory: Create an instance of InMemoryFile using one of the constructors that take byte[] or String as input, and feed that to a FromFileReader that support doing so (like the TextLineReader).

Note that you can obtain both OutputStream and InputStream instances from an InMemoryFile – you can write to AND (later) read from the same instance.

This class is essentially a byte[] wrapper making use of ByteArrayInputStream and ByteArrayOutputStream.

  • Field Details

  • Constructor Details

    • InMemoryFile

      public InMemoryFile()
    • InMemoryFile

      public InMemoryFile(byte[] contents)
    • InMemoryFile

      public InMemoryFile(String contents)
  • Method Details

    • getContentsAsByteArray

      public byte[] getContentsAsByteArray()
    • getContentsAsString

      public String getContentsAsString()
    • getName

      public Optional<String> getName()
      File Name
    • getType

      public Optional<String> getType()
      Media (content) Type
    • name

      public InMemoryFile name(String name)
    • newInputStream

      public InputStream newInputStream()
      Creates a new InputStream with each invocation (but keeps a reference to it for later internal use). The actual "input" is taken from the contents provided to the constructor or what was later written to an OutputStream obtained via newOutputStream().
    • newOutputStream

      public OutputStream newOutputStream()
      Creates a new OutputStream with each invocation (but keeps a reference to it for later internal use). Calling this method also clears any/all cached previous contents – you're expected to create new content with this.
    • setName

      public void setName(String name)
    • setType

      public void setType(String type)
    • type

      public InMemoryFile type(String type)