Avatar billede ff_j Nybegynder
31. oktober 2010 - 22:05 Der er 4 kommentarer og
1 løsning

Kode forklaring

Hey eksperter.

Er der nogle der kan fortælle mig hvad der sker i koden. specielt hvorfor der står
out = new PrintWriter(new FileWriter(filename + ".out"));
hvad betyder værdierne inde i FileWriter(filename + ".out"





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

public class Convert {

    private static BufferedReader in = null;
    private static String filename = null;
    private static PrintWriter out = null;

    public static void main(String[] args) {
        if (args.length > 0) {
            filename = args[0];
        } else {
            System.exit(0);
        }

        try {
            in = new BufferedReader(new FileReader(filename));
      out = new PrintWriter(new FileWriter(filename + ".out")); 
            String l = in.readLine();
            while (l != null) {
                out.print("System.out.println(\"");
                for (int i = 0; i < l.length(); i++) {
                    char c = l.charAt(i);
                    if (c == '"') {
                        out.print("\\");
                    }
                    out.print(c);
                }
                out.println("\");");
                l = in.readLine();
            }
            out.close();
            in.close();
        } catch (Exception e) {
        }
    }
}

På forhånd tak.
Avatar billede aaberg Nybegynder
31. oktober 2010 - 22:32 #1
new FileWriter(filename + ".out") opretter en ny FileWriter, som skriver til en fil med samme filnavn som indputtet, bare at der er tilføjet .out i enden. Så hvis input filen hedder "test.txt", hedder output filen: "test.txt.out".

Ellers ser det ud til at koden skal lave et slags script, hvor hver linje indeholder: System.out.orintln(" linjeindhold ");
I tillæg sørge den for at sætte backslash ( \ ) forand alle "-tegn

Og alt dette skriver den altså til filnavn.out
Avatar billede ff_j Nybegynder
01. november 2010 - 13:40 #2
Det giver god mening.

Men hvorfor ville den kun udskrive HTML siden jeg ønsker konverteret korrekt hvis jeg angiver .out
Burde koden ikke kunne gøre det uden at tilføje + ".out"

På forhånd tak.
Avatar billede ff_j Nybegynder
01. november 2010 - 13:45 #3
Ups kom til at smide et svar, skulle i virkeligheden kun have været en kommentar.
Så hvis du smider et Svar efter, så jeg kan accepter det.
Avatar billede aaberg Nybegynder
01. november 2010 - 18:11 #4
Vil du overskrive den originale fil? Da vil du blive nød til at læse hele indholdet fra den originale fil ind i memory (i eksempeltvis en String), lukke filen, og til sidst konvertere og overskrive den.

Du kan ikke have to streams åben ned i samme fil på samme tid.
Avatar billede ff_j Nybegynder
01. november 2010 - 21:26 #5
Mange tak for hjælpen.
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