Class VertaaTiedosto


  • public class VertaaTiedosto
    extends java.lang.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"});
         VertaaTiedosto.vertaaFileFile("tulos.txt","hiljaayli30.txt") === null;
         VertaaTiedosto.tuhoaTiedosto("hiljaa.txt");
         VertaaTiedosto.tuhoaTiedosto("hiljaayli30.txt");
     
    Version:
    10.3.2007
    Author:
    vesal
    • Constructor Summary

      Constructors 
      Constructor Description
      VertaaTiedosto()  
    • Method Summary

      All Methods Static Methods Concrete Methods 
      Modifier and Type Method Description
      static void kirjoitaTiedosto​(java.lang.String nimi, java.lang.String sisalto)
      Kirjoitetaan tiedostoon sisältö
      static void tuhoaTiedosto​(java.lang.String nimi)
      Tuhotaan tiedosto levyltä
      static java.lang.String vertaaFileFile​(java.lang.String nimi1, java.lang.String nimi2)
      Verrataan kahta tekstitiedostoa ja heti kun tulee ensimmäin poikkeava rivi palautetaanvirhe.
      static java.lang.String vertaaFileString​(java.lang.String nimi1, java.lang.String ss2)
      Verrataan tekstitiedostoa merkkijonoon ja heti kun tulee ensimmäinen poikkeava rivi palautetaan virhe.
      static java.lang.String vertaaString​(java.io.ByteArrayOutputStream bs, java.lang.String ss2)
      Verrataan keskenään merkkijonotietovirtaa ja merkkijon sisältöä.
      static java.lang.String vertaaString​(java.lang.String ss1, java.lang.String ss2)
      Verrataan kahta tekstitiedoston kaltaista merkkijonoa ja heti kun tulee ensimmäinen poikkeava rivi palautetaan virhe.
      static java.lang.String vertaaString2​(java.lang.String ss1, java.lang.String ss2)
      Verrataan kahta tekstitiedoston kaltaista merkkijonoa ja heti kun tulee ensimmäinen poikkeava rivi palautetaan virhe.
      • Methods inherited from class java.lang.Object

        equals, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
    • Method Detail

      • vertaaFileFile

        public static java.lang.String vertaaFileFile​(java.lang.String nimi1,
                                                      java.lang.String nimi2)
                                               throws java.io.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:
        java.io.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 java.lang.String vertaaFileString​(java.lang.String nimi1,
                                                        java.lang.String ss2)
                                                 throws java.io.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:
        java.io.IOException - jos lukemisessa tapahtuu virhe.
        Example:
         #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 java.lang.String vertaaString2​(java.lang.String ss1,
                                                     java.lang.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.
        Example:
         #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 java.lang.String vertaaString​(java.lang.String ss1,
                                                    java.lang.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.
        Example:
         #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((String)null,null) === null;
             vertaaString((String)null," ") === "1. on null";
             vertaaString(" ",null) === "2. on null";
         
      • vertaaString

        public static java.lang.String vertaaString​(java.io.ByteArrayOutputStream bs,
                                                    java.lang.String ss2)
        Verrataan keskenään merkkijonotietovirtaa ja merkkijon sisältöä. Kakkki rivit (myös tyhjät) pitää olla samalla tavalla. bs tyhjennetään vertailun jälkeen.
        Parameters:
        bs - verrattava merkkijonotietovirta
        ss2 - merkkijono johon verrataan
        Returns:
        null jos samat, muuten eroava rivi
        Example:
         #import java.io.ByteArrayOutputStream;
           ByteArrayOutputStream bs  = new ByteArrayOutputStream();
           PrintStream out = new PrintStream(bs);
           out.println("kissa\n");
           vertaaString(bs,"kissa") === "Rivi 2: 2. loppui ensin, 1. on ";
           vertaaString(bs,"\n") === "Rivi 1: 1. loppui ensin, 2. on ";
           out.println("\n\n");
           vertaaString(bs,"\n") === "Rivi 3: 2. loppui ensin, 1. on ";
           out.println("\r");  vertaaString(bs,"\n\n") === null;
           out.println("33 hiljaa 1 hiipii\r\nhyvä 33 tulee");
           vertaaString(bs,"33 hiljaa 1 hiipii\nhyvä 33 tulee\n") === null;
           out.print("a b");
           vertaaString(bs,"a c") === "Ero riveissä 1: a b ja a c"
           vertaaString(bs,null) === "2. on null";
         
      • kirjoitaTiedosto

        public static void kirjoitaTiedosto​(java.lang.String nimi,
                                            java.lang.String sisalto)
                                     throws java.io.IOException
        Kirjoitetaan tiedostoon sisältö
        Parameters:
        nimi - tiedoston nimi johon kirjoitetaan
        sisalto - merkkijono joka kirjoitetaan tiedostoon
        Throws:
        java.io.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​(java.lang.String nimi)
        Tuhotaan tiedosto levyltä
        Parameters:
        nimi - tuhottavan tiedoston nimi