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()
已经分配了一个大小合适的数组。请发布一个,这样我们就可以重现这个问题。一切都好。感谢大家的快速响应…我的目录名是错误的。所以函数只给出了空指针,因为它找不到路径。。