1

私がやりたいのは、まず、いくつかのファイルの一種のコピープログラムです。

ディクトリを入力すると、どこかに貼り付ける必要があります。

.txt以外のすべてのファイルタイプを除いて、すべてが正常に機能します。すべての単語データを開くことができません...ファイル転送後にすべてのpng、jpg、およびgifデータを開くことができません!?

だからここに私が得たものがあります:

@SuppressWarnings("deprecation")
static void crypt(String input, String output){
     File folder = new File(input);
     File[] listOfFiles = folder.listFiles();
     for (File file : listOfFiles){
         FileInputStream fis = null;
         BufferedInputStream bis = null;
         DataInputStream dis = null;
         System.out.println("['"+file.getName()+"' is copied]");
         try {
              fis = new FileInputStream(file);

              // Here BufferedInputStream is added for fast reading.
              bis = new BufferedInputStream(fis);
              dis = new DataInputStream(bis);
              FileWriter fstream;
              if(output.endsWith(file.separator) || output.endsWith("/")){  
                  fstream = new FileWriter(output+file.getName());
              }else{
                  fstream = new FileWriter(output+file.separator+file.getName());
              }
              BufferedWriter out = new BufferedWriter(fstream);


              //Close the output stream

              // dis.available() returns 0 if the file does not have more lines.
              while (dis.available() != 0) {

              // this statement reads the line from the file and print it to
                // the console.
                out.write(dis.readLine());
                out.newLine();
              }
              out.close();
              // dispose all the resources after using them.
              fis.close();
              bis.close();
              dis.close();

            } catch (FileNotFoundException e) {
              e.printStackTrace();
            } catch (IOException e) {
              e.printStackTrace();
            }

     }



 }
4

1 に答える 1

0

これ

    out.write(dis.readLine());
    out.newLine();

あなたの問題です。すべてのファイル タイプが行区切りになっているわけではありません。内容を保持するために、単純にバイトごとのコピーを実行します。おそらく、利用可能な多くのIOUtils copy()メソッドを確認できますか?

于 2012-11-13T16:55:11.400 に答える