2010-11-29 10 views
0

bin eine neue Biene in Java Welt Ich brauche ein einfaches Java-Programm, das in der Lage, auf eine pdf-Datei aus einem Ordner zugreifen und speichern Sie es in einem anderen Ordner, vor dem Problem, wie PDF-Datei mit nicht-Englisch zu lesen Dateiname bedeutet zu sagen, wenn der Dateiname wie folgt ist, wie kann ich diese Datei lesen und speichern sie in einem anderen Ordner mit dem gleichen Namen, das ist sehr dringend Anforderung für mich plz wenn jemand über diese PLZ wissen senden Sie mir einen Code, danke in AdvanceProblem mit Unicode-Zugang

Antwort

1

Erstens, wenn die einzige Aufgabe ist es, Datei in einen anderen Ordner zu kopieren, ist es egal, ob die Datei, wenn PDF oder was auch immer. Öffnen Sie die Datei, lesen Sie sie und schreiben Sie sie in eine andere Datei. Wenn Sie die Aufgabe jakarta Bibliotheken verwenden, ist sehr einfach:

OutputStream out = new FileOutputStream("yourfile.pdf"); 
IOUtils.copy(new FileInputStream("myfile.pdf"), out); 
out.flush(); 
out.close(); 

Aufgrund Java verwendet Unicode für die interne Darstellung der Zeichenfolge sollte ein beliebiger Dateiname hier einschließlich Dateinamen arbeiten, die nicht englische Zeichen enthält. Aber wenn Sie in Parsing des Inhalts interessant sind, verwenden Sie eine der Open-Source-Bibliotheken für die PDF-Analyse (z. B. http://java-source.net/open-source/pdf-libraries).

+0

Dank Alex für Ihre Antwort meine eigentliche Anforderung ist ich habe eine pdf-Datei dh Inv04736851-100919 重做 没有 .pdf ich möchte darauf zugreifen und muss es in einem anderen Ordner mit dem gleichen Namen speichern, wenn ich versuche, dies alles Chinesisch zu tun Zeichen, das in Dateiname ist, wird automatisch ersetzt mit ??????, – vijay

0

Woher beziehen Sie den Dateinamen? Ich habe den folgenden Code ausprobiert, der alle Dateien von einem Verzeichnis in ein anderes kopiert und die chinesischen Zeichen behält.

public class Main { 

public static void main(String[] args) throws FileNotFoundException, IOException { 
    String sourceDirectory = "temp/d1"; 
    String targetDirectory = "temp/d2"; 
    for (File fIn : new File(sourceDirectory).listFiles()) { 
     File fOut = new File(targetDirectory, fIn.getName()); 
     copy(fIn, fOut); 
    } 
} 

private static void copy(File fIn, File fOut) throws FileNotFoundException, IOException { 
    InputStream in = new BufferedInputStream(new FileInputStream(fIn)); 
    OutputStream out = new BufferedOutputStream(new FileOutputStream(fOut)); 
    try { 
     byte[] buf = new byte[1024]; 
     int read; 

     while (-1 != (read = in.read(buf))) { 
      out.write(buf, 0, read); 
     } 
    } finally { 
     out.flush(); 
     out.close(); 
     in.close(); 
    } 
} 

}

Vielleicht gehen Sie mit den Dateinamen in einer Weise, die chinesischen Schriftzeichen werden gelöscht?

+0

Vielen Dank, Sir, es funktioniert gut – vijay