Java 文件[]无法处理多个文件

Java 文件[]无法处理多个文件,java,file,Java,File,我想从多个目录中读取多个文件。到目前为止,我的程序只能读取多个文件,直到达到一定的限制 public void filesTobeCollected(String validpath) throws Exception { this.folder = new File(validpath); // this.file = new ArrayList<>(); File[] fileEntry = folder.listFiles(); System

我想从多个目录中读取多个文件。到目前为止,我的程序只能读取多个文件,直到达到一定的限制

 public void filesTobeCollected(String validpath) throws Exception {
    this.folder = new File(validpath);
    //  this.file = new ArrayList<>();
    File[] fileEntry = folder.listFiles();
    System.out.println("directory path" + fileEntry.length);

    /*****File upload read****/

    for (int i = 0; i < fileEntry.length; i++) {

        /*this line weeds out other directories/folders*/
        if (fileEntry[i].exists()) {

            file.add(String.valueOf(fileEntry[i]));
          }
      }
    }
public void filesTobeCollected(字符串validpath)引发异常{
this.folder=新文件(validpath);
//this.file=new ArrayList();
File[]fileEntry=folder.listFiles();
System.out.println(“目录路径”+fileEntry.length);
/*****文件上传读取****/
for(int i=0;i
我通过这个函数发送值目录

  public List<String> filesTobeTested(ArrayList<String> file) throws   
  Exception {
   Set<String> test = new HashSet<>();
    test.add("src/test/resources/gfd");
    test.add("src/test/resources/rds");
    test.add("src/test/resources/oiu");
    //test.add("src/test/resources/pol");

    System.out.println("directory path 2" + test);

    for (int i = 0; i < 1; i++) {

        for (Iterator<String> it = test.iterator(); it.hasNext(); ) {
            String f = it.next();
            filesTobeCollected(f);
            System.out.println("Found" + f);
        }
要测试的公共列表文件(ArrayList文件)抛出
例外情况{
Set test=新的HashSet();
test.add(“src/test/resources/gfd”);
test.add(“src/test/resources/rds”);
添加(“src/test/resources/oiu”);
//添加(“src/test/resources/pol”);
System.out.println(“目录路径2”+测试);
对于(int i=0;i<1;i++){
for(Iterator it=test.Iterator();it.hasNext();){
字符串f=it.next();
要收集的文件(f);
系统输出打印项次(“找到”+f);
}
当我使用test.add(“src/test/resources/obj”)推送更多目录时,文件[]fileEntry似乎有一些限制。文件[]fileEntry无法处理更多的文件。如果文件数量不限或未知,是否有其他文件[]fileEntry的替代方案

如果文件数量不限或未知,是否有
File[]fileEntry
的替代方案

是的,使用
ArrayList
wich将自动为您处理大小


但这似乎不是问题所在,因为您知道创建数组时需要处理的所有文件,因此大小是准确的
File[]fileEntry=folder.listFiles();

删除此行

for (int i = 0; i < 1; i++) {
for(int i=0;i<1;i++){
这似乎很有用……如果问题仍然存在,发布您的stacktrace

如果文件数量不限或未知,是否有
File[]fileEntry
的替代方案

是的,使用
ArrayList
wich将自动为您处理大小


但这似乎不是问题所在,因为您知道创建数组时需要处理的所有文件,因此大小是准确的
File[]fileEntry=folder.listFiles();

删除此行

for (int i = 0; i < 1; i++) {
for(int i=0;i<1;i++){

这似乎是有用的…如果问题仍然存在,发布您的stacktrace

因为我深深地认出了您,您希望将这些文件收集到一个文件中

在我的情况下,我建议首先收集文件路径或文件,并将其添加到
ArrayList
,然后再读取这些文件然后在
ArrayList
中进行收集,稍后如果您想将其制作为单个文件,当然可以使用
ObjectOutputStream
类编写
ArrayList
对象
并创建单个
文件


在此过程中,注意文件读写字节大小不要跨越Java堆空间边界。

由于我对您的认识很深,您希望将这些文件收集到一个文件中

在我的情况下,我建议首先收集文件路径或文件,并将其添加到
ArrayList
,然后再读取这些文件然后在
ArrayList
中进行收集,稍后如果您想将其制作为单个文件,当然可以使用
ObjectOutputStream
类编写
ArrayList
对象
并创建单个
文件


在此过程中,注意文件读写字节大小不会跨越Java堆空间边界。

您是否遇到任何异常?为什么有
for(int i=0;i<1;i++){
?此for循环只执行一次;您也可以删除它。
是文件[]的任何替代方法如果文件数量不限或未知,则使用fileEntry?
-通常应使用
ArrayList
之类的内容,而不是原始数组,但这不是问题所在,因为
listFiles();
已经分配了一个大小合适的数组。请发布一个,这样我们就可以重现这个问题。一切都好..感谢大家的快速响应…我的目录名是错误的。所以函数只是给出了空指针,因为它找不到路径..您有任何异常吗?为什么有(
for)(int i=0;i<1;i++){
?此for循环只执行一次;您也可以将其删除。
对于文件[]fileEntry,在文件数量不受限制或未知的情况下,是否有任何替代方法?
-通常您应该使用类似于
ArrayList
的内容,而不是原始数组,但这不是这里的问题,因为
listFiles()
已经分配了一个大小合适的数组。请发布一个,这样我们就可以重现这个问题。一切都好。感谢大家的快速响应…我的目录名是错误的。所以函数只给出了空指针,因为它找不到路径。。