31. oktober 2010 - 22:05Der 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) { } } }
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
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"
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.
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.