3

だから私はこの方法でファイルを新しい場所にコピーしようとしています:

FileReader in = new FileReader(strTempPath);
FileWriter out = new FileWriter(destTempPath);

int c;
while ((c = in.read()) != -1){
    out.write(c);
}

in.close();
out.close();

これは、99% の確率で正常に機能します。画像がかなり小さい場合 (<= 60x80px)、コピーされた画像がすべて歪んで表示されることがあります。ここで何が起こっているのか知っている人はいますか?ここのコピー機能のせいですか、それとも他の場所を探すべきですか?

ありがとう。

4

2 に答える 2

11

Readers/Writersを使用してバイナリ データを読み取らないでください。InputStreamsnio パッケージの/OutputStreamsまたはを使用しChannelsます (以下を参照)。

exampledepot.com の例:

try {
    // Create channel on the source
    FileChannel srcChannel = new FileInputStream("srcFilename").getChannel();

    // Create channel on the destination
    FileChannel dstChannel = new FileOutputStream("dstFilename").getChannel();

    // Copy file contents from source to destination
    dstChannel.transferFrom(srcChannel, 0, srcChannel.size());

    // Close the channels
    srcChannel.close();
    dstChannel.close();
} catch (IOException e) {
}
于 2011-06-08T18:24:44.227 に答える
0

文字ファイルを読み取るための便利なクラス。http://download.oracle.com/javase/6/docs/api/java/io/FileReader.html

于 2011-06-08T18:29:36.067 に答える