2010-11-29 103 views
0

是一個新的蜜蜂在Java世界我需要一個簡單的Java程序,它能夠從一個文件夾訪問一個PDF文件並將其存儲在另一個文件夾中,面臨着問題如何閱讀非英文的PDF文件文件名的意思是說,如果文件名是這樣的,我如何讀取此文件並將其存儲在另一個具有相同名稱的文件夾中,這對我的PLZ非常強烈的要求,如果任何人知道這個PLZ給我一個代碼,謝謝提前unicode訪問問題

回答

1

首先,如果唯一的任務是將文件複製到其他文件夾,則無論文件是否爲PDF或其他文件都無關緊要。打開文件,將其讀取並寫入其他文件。如果您使用的雅加達庫任務很簡單:

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

由於Java的使用Unicode字符串的任何文件名應該在這裏工作,包括含有非英文字符的文件名的內部表示。 但是,如果您對解析內容感興趣,請使用其中一個開放源碼庫進行PDF解析(例如http://java-source.net/open-source/pdf-libraries)。

+0

感謝亞歷克斯對於我的迴應我的實際要求是我有一個pdf文件即Inv04736851-100919重做沒有.pdf我想訪問它,並需要將它存儲在另一個相同名稱的文件夾時,當我嘗試這樣做所有中文在文件名中的字符會自動替換??????, – vijay 2010-11-29 09:17:39

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

}

也許你的方式處理文件名中的中國文字被刪除?

+0

謝謝你,他的工作很好 – vijay 2010-11-29 10:02:56