Yksi yleinen aloittelijan virhe on tehdä paljon aliohjelmia, jotka tulostavat. Pikemminkin pitää toimia päinvastoin, eli aliohjelmien on tehtävä oma työnsä ja annettava sitten tulokset muille tulostettavaksi. Näin samoja aliohjelmia voidaan käyttää myös järjestelmässä, jossa varsinaista konsolitulostusta ei voi tehdä. Tällaisia ovat mm. graafiset käyttöliittymät.
Jos halutaan että aliohjelma kuitenkin tulostaa, niin useimmiten sille kannattaa siinä tapauksessa viedä parametrina tietovirta johon tulostetaan. Palaamme tähän esimerkin kanssa seuraavissa luvuissa. Alla kuitenkin pikainen esimerkki:
import java.io.*; /** * Testataan tietovirran viemistä parametrina * @author Vesa Lappalainen * @version 1.0, 19.01.2003 */ public class Tulostustesti { private static void tulosta(OutputStream os,int h, int m) { PrintStream out = new PrintStream(os); out.println("" + h + ":" + m); } public static void main(String[] args) throws FileNotFoundException, IOException { int h=12, m=15; // Tulostaminen näyttöön tulosta(System.out,h,m); // Tulostaminen tiedostoon FileOutputStream f = new FileOutputStream("Tulostustesti.txt"); try { tulosta(f,h,m); } finally { f.close(); } // Tulostaminen tavutietovirtaan, joka voidaan muuttaa sitten merkkijonoksi ByteArrayOutputStream bs = new ByteArrayOutputStream(); tulosta(bs,h,m); String s = bs.toString(); System.out.println(s); // Lisätty, jotta nähdään tulos. } }