2010-11-29 87 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