fi.jyu.mit.ohj2
Class VertaaTiedosto

java.lang.Object
  extended by fi.jyu.mit.ohj2.VertaaTiedosto

public class VertaaTiedosto
extends Object

Aliohjelma kahden tekstitiedoston vertaamiseksi. Käyttö lähinnä JUnit testeissä esim. seuraavasti:

     VertaaTiedosto.kirjoitaTiedosto("hiljaa.txt", 
         "33 hiljaa 1 hiipii\n"+
         "hyvä 33 tulee\n"+
         "36 1 3 5 55\n"+
         "nyt 33 riittää\n");    
     VertaaTiedosto.kirjoitaTiedosto("hiljaayli30.txt", 
         "33 hiljaa 1 hiipii\n"+
         "36 1 3 5 55\n");
     VertaaTiedosto.tuhoaTiedosto("tulos.txt");
     TulYli30.main(new String[]{"hiljaa.txt","tulos.txt"});
     String virhe=VertaaTiedosto.vertaa("tulos.txt","hiljaayli30.txt");
     if ( virhe != null ) fail(virhe);
 

Version:
10.3.2007
Author:
vesal

Constructor Summary
VertaaTiedosto()
           
 
Method Summary
static void kirjoitaTiedosto(String nimi, String sisalto)
          Kirjoitetaan tiedostoon sisältö
static void tuhoaTiedosto(String nimi)
          Tuhotaan tiedosto levyltä
static String vertaaFileFile(String nimi1, String nimi2)
          Verrataan kahta tekstitiedostoa ja heti kun tulee ensimmäin poikkeava rivi palautetaanvirhe.
static String vertaaFileString(String nimi1, String ss2)
          Verrataan tekstitiedostoa merkkijonoon ja heti kun tulee ensimmäinen poikkeava rivi palautetaan virhe.
static String vertaaString(String ss1, String ss2)
          Verrataan kahta tekstitiedoston kaltaista merkkijonoa ja heti kun tulee ensimmäinen poikkeava rivi palautetaan virhe.
static String vertaaString2(String ss1, String ss2)
          Verrataan kahta tekstitiedoston kaltaista merkkijonoa ja heti kun tulee ensimmäinen poikkeava rivi palautetaan virhe.
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Constructor Detail

VertaaTiedosto

public VertaaTiedosto()
Method Detail

vertaaFileFile

public static String vertaaFileFile(String nimi1,
                                    String nimi2)
                             throws IOException
Verrataan kahta tekstitiedostoa ja heti kun tulee ensimmäin poikkeava rivi palautetaanvirhe. Lopussa olevat pelkkä yksi rivi ei tee eroa.

Parameters:
nimi1 - 1. verrattavan tiedoston nimi
nimi2 - 2. verrattavan tiedoston nimi
Returns:
ensimmäinen eroavaisuus joka löytyy. Null jos ei eroja.
Throws:
IOException - jos lukemisessa tapahtuu virhe.
Example:
 #THROWS IOException
 #import java.io.*;
 #STATICIMPORT
     kirjoitaTiedosto("hiljaa1.txt", "33 hiljaa 1 hiipii\nhyvä 33 tulee\n");
         
     kirjoitaTiedosto("hiljaa2.txt", "33 hiljaa 1 hiipii\nhyvä 33 tulee\n"); 
     vertaaFileFile("hiljaa1.txt","hiljaa2.txt") === null;

     kirjoitaTiedosto("hiljaa2.txt", "33 hiljaa 1 hiipii\nhyvä 33 tulee"); 
     vertaaFileFile("hiljaa1.txt","hiljaa2.txt") === null;

     kirjoitaTiedosto("hiljaa2.txt", "33 hiljaa 1 hiipii\nhyvä 33 tulee\n\n\n");
     vertaaFileFile("hiljaa1.txt","hiljaa2.txt") === "Rivi 3: hiljaa1.txt loppui ensin, hiljaa2.txt on ";

     kirjoitaTiedosto("hiljaa2.txt", "33 hiljaa 1 hiipii\nhyvä 34 tulee\n");
     vertaaFileFile("hiljaa1.txt","hiljaa2.txt") === "Ero riveissä 2: hyvä 33 tulee ja hyvä 34 tulee";
     
     kirjoitaTiedosto("hiljaa2.txt", "33 hiljaa 1 hiipii\n");
     vertaaFileFile("hiljaa1.txt","hiljaa2.txt") === "Rivi 2: hiljaa2.txt loppui ensin, hiljaa1.txt on hyvä 33 tulee";

     kirjoitaTiedosto("hiljaa2.txt", "33 hiljaa 1 hiipii\nhyvä 33 tulee\nja 34 tulee\n");
     vertaaFileFile("hiljaa1.txt","hiljaa2.txt") === "Rivi 3: hiljaa1.txt loppui ensin, hiljaa2.txt on ja 34 tulee";
     vertaaFileFile("hiljaa1.txt","hiljaa3.txt") === "Tiedosto ei aukea: hiljaa3.txt";
     vertaaFileFile("hiljaa4.txt","hiljaa2.txt") === "Tiedosto ei aukea: hiljaa4.txt";
     
     tuhoaTiedosto("hiljaa1.txt");
     tuhoaTiedosto("hiljaa2.txt");
 
 

vertaaFileString

public static String vertaaFileString(String nimi1,
                                      String ss2)
                               throws IOException
Verrataan tekstitiedostoa merkkijonoon ja heti kun tulee ensimmäinen poikkeava rivi palautetaan virhe. Lopussa olevat pelkkä yksi tyhkä rivi eo tee eroa.

Parameters:
nimi1 - 1. verrattavan tiedoston nimi
ss2 - 2. verrattava sisältö
Returns:
ensimmäinen eroavaisuus joka löytyy. Null jos ei eroja.
Throws:
IOException - jos lukemisessa tapahtuu virhe.
 #THROWS IOException
 #import java.io.*;
 #STATICIMPORT
     kirjoitaTiedosto("hiljaa1.txt", "33 hiljaa 1 hiipii\nhyvä 33 tulee\n");
         
     vertaaFileString("hiljaa1.txt","33 hiljaa 1 hiipii\nhyvä 33 tulee\n") === null;

     vertaaFileString("hiljaa1.txt","33 hiljaa 1 hiipii\nhyvä 33 tulee") === null;

     vertaaFileString("hiljaa1.txt","33 hiljaa 1 hiipii\nhyvä 33 tulee\n\n") === "Rivi 3: hiljaa1.txt loppui ensin, jono on ";

     vertaaFileString("hiljaa1.txt","33 hiljaa 1 hiipii\nhyvä 33 tulee\n\n\n") === "Rivi 3: hiljaa1.txt loppui ensin, jono on ";

     vertaaFileString("hiljaa1.txt","33 hiljaa 1 hiipii\nhyvä 34 tulee\n") === "Ero riveissä 2: hyvä 33 tulee ja hyvä 34 tulee";
     
     vertaaFileString("hiljaa1.txt","33 hiljaa 1 hiipii\n") === "Rivi 2: Jono loppui ensin, hiljaa1.txt on hyvä 33 tulee";

     vertaaFileString("hiljaa1.txt","33 hiljaa 1 hiipii\nhyvä 33 tulee\nja 34 tulee\n") === "Rivi 3: hiljaa1.txt loppui ensin, jono on ja 34 tulee";
     vertaaFileString("hiljaa1.txt",null) === "Jono on null"; 
     vertaaFileString("hiljaa4.txt","hiljaa2.txt") === "Tiedosto ei aukea: hiljaa4.txt";
     
     tuhoaTiedosto("hiljaa1.txt");
 
 

vertaaString2

public static String vertaaString2(String ss1,
                                   String ss2)
Verrataan kahta tekstitiedoston kaltaista merkkijonoa ja heti kun tulee ensimmäinen poikkeava rivi palautetaan virhe. Lopussa oleva yksi tyhjä rivi ei tee eroa.

Parameters:
ss1 - 1. verrattava sisältö
ss2 - 2. verrattava sisältö
Returns:
ensimmäinen eroavaisuus joka löytyy. Null jos ei eroja.
 #THROWS IOException
 #import java.io.*;
 #STATICIMPORT
     vertaaString2("","\n") === "Rivi 1: 1. loppui ensin, 2. on ";
     vertaaString2("kissa\n","kissa") === null;
     vertaaString2("\n\n","\n") === "Rivi 2: 2. loppui ensin, 1. on ";
     vertaaString2("\r\n","\n") === null;
     vertaaString2("\r\n","\n\n") === "Rivi 2: 1. loppui ensin, 2. on ";
     vertaaString2("33 hiljaa 1 hiipii\r\nhyvä 33 tulee\r\n","33 hiljaa 1 hiipii\nhyvä 33 tulee\n") === null;
     vertaaString2("a b","a c") === "Ero riveissä 1: a b ja a c"
     vertaaString2(null,null) === null;
     vertaaString2(null," ") === "1. on null";
     vertaaString2(" ",null) === "2. on null";
 

vertaaString

public static String vertaaString(String ss1,
                                  String ss2)
Verrataan kahta tekstitiedoston kaltaista merkkijonoa ja heti kun tulee ensimmäinen poikkeava rivi palautetaan virhe. Lopussa olevat pelkät tyhjät rivit merkitsevät.

Parameters:
ss1 - 1. verrattava sisältö
ss2 - 2. verrattava sisältö
Returns:
ensimmäinen eroavaisuus joka löytyy. Null jos ei eroja.
 #THROWS IOException
 #import java.io.*;
 #STATICIMPORT
     vertaaString("kissa\n","kissa") === "Rivi 2: 2. loppui ensin, 1. on ";
     vertaaString("","\n") === "Rivi 1: 1. loppui ensin, 2. on ";
     vertaaString("\n\n","\n") === "Rivi 3: 2. loppui ensin, 1. on ";
     vertaaString("\r\n","\n") === null;
     vertaaString("\r","\n")   === null;
     vertaaString("\r\n","\n\n") === "Rivi 3: 1. loppui ensin, 2. on ";
     vertaaString("33 hiljaa 1 hiipii\r\nhyvä 33 tulee\r\n","33 hiljaa 1 hiipii\nhyvä 33 tulee\n") === null;
     vertaaString("a b","a c") === "Ero riveissä 1: a b ja a c"
     vertaaString(null,null) === null;
     vertaaString(null," ") === "1. on null";
     vertaaString(" ",null) === "2. on null";
 

kirjoitaTiedosto

public static void kirjoitaTiedosto(String nimi,
                                    String sisalto)
                             throws IOException
Kirjoitetaan tiedostoon sisältö

Parameters:
nimi - tiedoston nimi johon kirjoitetaan
sisalto - merkkijono joka kirjoitetaan tiedostoon
Throws:
IOException - jos tiedosto ei aukea.
Example:
 #THROWS IOException
     kirjoitaTiedosto("hiljaa1.txt", "33 hiljaa 1 hiipii\nhyvä 33 tulee\n");
     tuhoaTiedosto("hiljaa1.txt");
     kirjoitaTiedosto("ö:\\ö.ö", "33 hiljaa 1 hiipii\nhyvä 33 tulee\n"); #THROWS IOException
 

tuhoaTiedosto

public static void tuhoaTiedosto(String nimi)
Tuhotaan tiedosto levyltä

Parameters:
nimi - tuhottavan tiedoston nimi