Avatar billede lasse182 Nybegynder
11. november 2009 - 20:20 Der er 4 kommentarer og
1 løsning

Samling af text filer i en fil!

Hej..

Jeg har fået stillet følgende opg:

Lav et program der konkatenerer indholdet af flere tekstfiler filer sammen på en enkelt fil. F.eks.
java CatFiles chapter1.txt chapter2.txt chapter3.txt book.txt
laver en lang fil, book.txt, der består af indholdet af filerne chapter1.txt, chapter2.txt og chapter3.txt. Outputfilen er altid den sidste fil på kommandolinjen.
Programmet skal kunne håndtere konkatenation af vilkårligt mange filer, idet antallet af filer kan udledes fra antal parametre på kommandolinjen.

Vær opmærksom på at alle IOExceptions fanges og behandles hensigtsmæssigt.

Dit program bør minimum gøre følgende (og aldrig kaste undtagelser ud af main metoden):

hvis der er for få eller nul parametre, så giv informativ fejlmeddelelse
hvis en inputfil ikke eksisterer, så giv informativ fejlmeddelelse
hvis alle inputfiler er angivet korrekt, så skal outputfilen beregnes korrekt.

Jeg har det her kode indtil videre, men er gået lidt kold.. Er der nogen der gider at kigge det igennem, og eventuelt gi´ et hint til hvordan jeg får opg. løst.. I første omgang skal jeg bare ha' det til at virke.. Ved godt at exceptions ik' er helt på plads..

import java.io.*;
import java.util.*;


public class BookCombiner
{
    private String[] files;
   
    public BookCombiner(String[] files)
    {
        this.files = files;
    }
   
    public void runThrough()
    {
        for(int i = 0; i < files.length - 1; i++)
        {
            String source = files[i];
        }
    }
   
    public void bookCombiner()
    {
        try
        {
            BufferedReader reader =    new BufferedReader(new FileReader(files));
            String line = reader.readLine();
            FileWriter writer = new FileWriter(line);
            while(line !=null)
            {
                line = reader.readLine();
                writer.write(line);               
            }
            writer.close();
            reader.close();
        }
        catch(Exception e)
        {
            System.out.println(e);
        }       
    }
}
Avatar billede lasse182 Nybegynder
11. november 2009 - 20:37 #1
Er kommet lidt nærmere et resultat tror jeg:

import java.io.*;
import java.util.*;


public class BookCombiner
{
    private String[] files;
   
    public BookCombiner(String[] files)
    {
        this.files = files;
    }
   
    public void bookCombiner()
    {
        try
        {
            for(int i = 0; i < files.length - 1; i++)
            {
                String source = files[i];
           
            BufferedReader reader =    new BufferedReader(new FileReader(source));
            String line = reader.readLine();
            FileWriter writer = new FileWriter();
            while(line !=null)
            {
                line = reader.readLine();
                writer.write(files.length-1);               
            }
            writer.close();
            reader.close();
            }
        }
        catch(Exception e)
        {
            System.out.println(e);
        }       
    }
}
Avatar billede arne_v Ekspert
12. november 2009 - 23:30 #2
FileWriter writer = new FileWriter();

->

FileWriter writer = new FileWriter(nameofonefile);

og flyt den uden for for loekken (og flyt close neden for forloekkens afslutning).
Avatar billede lasse182 Nybegynder
12. november 2009 - 23:41 #3
Hej,

Tak for svaret.. Har løst det.. send et svar så får du point..
Avatar billede arne_v Ekspert
13. november 2009 - 02:30 #4
ok
Avatar billede quiw Nybegynder
17. november 2009 - 00:13 #5
Hehe, der er vist en som går på datalogi i Århus :)
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Kurser inden for grundlæggende programmering

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester