2010-07-30 86 views
0

如何迭代目录以读取* .csv文件并将它们上传到我的系统中的Java?在java中读取和上传文件

忽略帖子的上传部分。

+0

上传他们在哪里? – mhshams 2010-07-30 20:02:37

+0

在我的系统中很好地上传它们。我读取每个文件并操作数据并在系统中上传这些数据。 – yogsma 2010-07-30 20:07:36

+0

关于您在此使用的术语“上传”,仍存在歧义或误解。你应该澄清更多。 – BalusC 2010-07-30 20:09:33

回答

2

你可以这样做,找到扩展名为.csv的目录中的所有文件。

File[] files = new File(DIR_LOCATION).listFiles(new FileFilter() { 
    public boolean accept(File file) { 
     return file.getName().endsWith(".csv"); 
    } 
}); 

看看Java教程的File I/O部分

+1

你有一个错字:'endsWith(“。pdf”)'而不是'endsWith(“。csv”)'。 – Jesper 2010-07-31 06:06:19

1

提供更多的细节。你在谈论一个Web应用程序还是一个独立的应用程序。简单的答案是,如果它是一个Web应用程序,你不能这样做,因为你只能使用文件控制上传文件。如果它是独立应用程序,则可以使用list文件方法读取目录,并检查扩展名是否为csv并读取它。

1

您可以使用File#listFiles()FilenameFilter组合来获取给定目录的CSV文件。

File directory = new File("/path/to/your/dir"); 
File[] csvFiles = directory.listFiles(new FilenameFilter() { 
    @Override public boolean accept(File dir, String name) { 
     return name.endsWith(".csv"); 
    } 
}); 

答案所剩下的取决于如何以及在哪里,你想将其上传到。如果是FTP服务,那么您想使用Apache Commons NetFTPClient。如果这是一项HTTP服务,那么您想使用Apache HttpComponents ClientHttpClient。如果您编辑您的问题以阐明功能要求,那么我可能会更新此答案以包含更多详细信息。但是,您应该知道,您需要某种服务器才能够连接并发送/上载文件。例如。一个FTP或HTTP(网络)服务器。

0

File.list()将获取给定目录中的所有文件。 File.list()以字符串数组的形式返回它; File.listFiles()将其作为File对象的数组返回。

然后,您可以遍历数组并选取以“.csv”结尾的所有数组。

如果您希望更复杂一些,请创建一个仅传递csv文件的FilenameFilter。

0

检查File API。具体来说,File.list *方法;那些将列出目录中的文件。