This reference is for Processing 3.0+. If you have a previous version, use the reference included with your software in the Help menu. If you see any errors or have suggestions, please let us know. If you prefer a more technical reference, visit the Processing Core Javadoc and Libraries Javadoc.



// Load the local file 'data.txt' and initialize a new InputStream
InputStream input = createInput("data.txt");

String content = "";

try {
  int data =;
  while (data != -1) {
    content += data;
    data =;
catch (IOException e) {
finally {
  try {
  catch (IOException e) {

Description This is a shorthand function for advanced programmers to initialize and open a Java InputStream. It's useful if you want to use the facilities provided by PApplet to easily open files from the data folder or from a URL, but you need an InputStream object so that you can use other parts of Java to take more control of how the stream is read.

The filename passed in can be:
- A URL, as in: createInput("")
- The name of a file in the sketch's data folder
- The full path to a file to be opened locally (when running as an application)

If the requested item doesn't exist, null is returned. If not online, this will also check to see if the user is asking for a file whose name isn't properly capitalized. If capitalization is different, an error will be printed to the console. This helps prevent issues that appear when a sketch is exported to the web, where case sensitivity matters, as opposed to running from inside the Processing Development Environment on Windows or Mac OS, where case sensitivity is preserved but ignored.

If the file ends with .gz, the stream will automatically be gzip decompressed. If you don't want the automatic decompression, use the related function createInputRaw().

In earlier releases, this function was called openStream().
filename String: the name of the file to use as input
Updated on November 10, 2017 05:36:28pm EST

Creative Commons License