-1

Java の世界の新しい蜂です。1 つのフォルダーから 1 つの PDF ファイルにアクセスして別のフォルダーに保存できるシンプルな Java プログラムが必要です。ファイル名はこのようなものです。このファイルを読み取って同じ名前の別のフォルダに保存するにはどうすればよいですか。これは私にとって非常に緊急の要件です。誰かがこのことを知っている場合は、コードを送ってください。よろしくお願いします。

4

2 に答える 2

1

まず、唯一のタスクがファイルを他のフォルダーにコピーすることである場合、ファイルが PDF であるかどうかは関係ありません。ファイルを開き、それを読み取り、他のファイルに書き込みます。ジャカルタ ライブラリを使用している場合、タスクは非常に簡単です。

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

Java は文字列の内部表現に Unicode を使用するため、英語以外の文字を含むファイル名を含め、すべてのファイル名がここで機能するはずです。ただし、コンテンツの解析に興味がある場合は、PDF 解析用のオープン ソース ライブラリの 1 つを使用してください (例: http://java-source.net/open-source/pdf-libraries )。

于 2010-11-29T08:43:51.510 に答える
0

ファイル名はどこから取得しますか?次のコードを試しました。このコードは、あるディレクトリから別のディレクトリにすべてのファイルをコピーし、漢字を保持します。

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();
    }
}

}

漢字を落とすような方法でファイル名を扱っているのではないでしょうか。

于 2010-11-29T09:48:17.123 に答える