Class InMemoryFile
- java.lang.Object
-
- org.ojalgo.netio.InMemoryFile
-
public class InMemoryFile extends java.lang.Object
An in-memory "file" that can be used with someToFileWriter
and/orFromFileReaderr
implementations instead of aFile
.To dynamically create file contents that only exist in memory (for download): Feed an instance of
InMemoryFile
rather thanFile
to aToFileWriter
that support doing so (like theTextLineWriter
), and keep a reference to theInMemoryFile
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 takebyte[]
orString
as input, and feed that to aFromFileReader
that support doing so (like theTextLineReader
).Note that you can obtain both
OutputStream
andInputStream
instances from anInMemoryFile
– you can write to AND (later) read from the same instance.This class is essentially a
byte[]
wrapper making use ofByteArrayInputStream
andByteArrayOutputStream
.
-
-
Field Summary
Fields Modifier and Type Field Description private byte[]
myInitialContents
private java.io.ByteArrayInputStream
myInputStream
private java.lang.String
myName
private java.io.ByteArrayOutputStream
myOutputStream
private java.lang.String
myType
-
Constructor Summary
Constructors Constructor Description InMemoryFile()
InMemoryFile(byte[] contents)
InMemoryFile(java.lang.String contents)
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description byte[]
getContentsAsByteArray()
java.lang.String
getContentsAsString()
java.util.Optional<java.lang.String>
getName()
File Namejava.util.Optional<java.lang.String>
getType()
Media (content) TypeInMemoryFile
name(java.lang.String name)
java.io.InputStream
newInputStream()
Creates a newInputStream
with each invocation (but keeps a reference to it for later internal use).java.io.OutputStream
newOutputStream()
Creates a newOutputStream
with each invocation (but keeps a reference to it for later internal use).void
setName(java.lang.String name)
void
setType(java.lang.String type)
InMemoryFile
type(java.lang.String type)
-
-
-
Method Detail
-
getContentsAsByteArray
public byte[] getContentsAsByteArray()
-
getContentsAsString
public java.lang.String getContentsAsString()
-
getName
public java.util.Optional<java.lang.String> getName()
File Name
-
getType
public java.util.Optional<java.lang.String> getType()
Media (content) Type
-
name
public InMemoryFile name(java.lang.String name)
-
newInputStream
public java.io.InputStream newInputStream()
Creates a newInputStream
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 anOutputStream
obtained vianewOutputStream()
.
-
newOutputStream
public java.io.OutputStream newOutputStream()
Creates a newOutputStream
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(java.lang.String name)
-
setType
public void setType(java.lang.String type)
-
type
public InMemoryFile type(java.lang.String type)
-
-