This question specifically refers to Java version of Input Streams but the question could probably apply to other languages.
Does an Input Stream act as a pointer to a file until a read call is made? In a toy program I am working with I am passing a Input Stream through a few different functions and would like to understand if I am passing the entire file as bytes loaded into RAM, a specific amount of bytes that are loaded into a buffer which is in RAM, or just a pointer to the file that will only load bytes into RAM upon a read call.
Does the type of Input Stream I use have different implementations (i.e. ByteArrayInputStream vs BufferedInputStream)?