Ylös Edellinen Seuraava Otsikkosivu Hakemisto Sisällys

8.5.8 Aliohjelmat tulostavat harvoin

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:

java-muut\Tulostustesti.java - tulostus näytölle ja tiedostoon

	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.
	  }
	
	}


Ylös Edellinen Seuraava Otsikkosivu Hakemisto Sisällys