Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/file/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 如何使用文件列表中的一个文件_Java_File_Csv - Fatal编程技术网

Java 如何使用文件列表中的一个文件

Java 如何使用文件列表中的一个文件,java,file,csv,Java,File,Csv,我的目录中有3个文件,因此在我获得所有3个文件后,如何使用文件读取器中的第一个文件: File folder = new File("C:/Path/Dir"); File[] listOfFiles = folder.listFiles(); for (File file : listOfFiles) { if (file.isFile()) { String csvFile = file.getNam

我的目录中有3个文件,因此在我获得所有3个文件后,如何使用文件读取器中的第一个文件:

File folder = new File("C:/Path/Dir");
        File[] listOfFiles = folder.listFiles();


        for (File file : listOfFiles) {
            if (file.isFile()) {
                String csvFile = file.getName();
                System.out.println(csvFile);
            }
        }

Output:
1.csv
2.csv
3.csv

listOfFiles[0]
应该为您获取第一个元素

请阅读一些关于java阵列的教程:

如果您只指定第一个文件,那么只需使用
列表文件[0].getName()
获取文件名即可

如果您要获取满足特定条件的文件路径,则可以使用如下方法:

 //File reader
            Path path = Paths.get(csvFile);
            int lineCount = (int) Files.lines(path).count();
File folder=新文件(“C:/Path/Dir”);
File[]listOfFiles=folder.listFiles();
字符串csvFile=null;
对于(文件:listOfFiles){
if(file.isFile()&&){
csvFile=file.getName();
System.out.println(csvFile);
打破
}
}
这里:

File folder = new File("C:/Path/Dir");
File[] listOfFiles = folder.listFiles();

String csvFile = null;
for (File file : listOfFiles) {
    if (file.isFile() && <condition>) {
       csvFile = file.getName();
       System.out.println(csvFile);
       break;
     }
}
for(int i=0;i
然后我用 文件读取器中的文件列表[i]


很抱歉被转储了一段时间)

当您只对文件(而不是目录或其他内容)感兴趣时,您可以在文件中指定此条件。listFiles调用:

for (int i = 0; i < listOfFiles.length; i++) {
  if (listOfFiles[i].isFile()) {
    System.out.println("File " + listOfFiles[i].getName());
  } else if (listOfFiles[i].isDirectory()) {
    System.out.println("Directory " + listOfFiles[i].getName());
  }
}
或者使用Java8Lambdas

    File[] files=new File("c:/tmp").listFiles(new FileFilter() {

        @Override
        public boolean accept(File file) {
            return file.isFile();
        }
    });
在文件列表中,可以选择第一个文件,就像选择数组的第一个元素一样:

    File[] files=new File("c:/tmp").listFiles((f)->{return f.isFile();});

简单地说,所有文件都在一个文件数组中,如下所示:

    System.out.println("First file:"+(files.length>0?files[0]:" no files"));
因此,您可以按索引直接访问第一个文件(索引以0开头),如下所示

File[] listOfFiles = folder.listFiles();

您需要弄清楚两件事:首先是只读文件而不是文件夹;第二个文件是第一个文件。下面的代码假设您要读取文件并按字典顺序按文件名获取第一个文件:

Path path = Paths.get(listOfFiles[0].getName());
int lineCount = (int) Files.lines(path).count();
private static void readFirstFile(字符串路径)引发异常{
文件夹=新文件(路径);
File[]files=folder.listFiles(File::isFile);
if(null==files | | files.length<3){
返回;
}
sort(文件,Comparator.comparing(文件::getName));
列表行=FileUtils.readLines(文件[0],“UTF-8”);
lines.forEach(System.out::println);
}

列表文件
是一个数组。。。那么,如何访问数组的第一个元素呢?这是基本的Java语言,可能与
Path path = Paths.get(listOfFiles[0].getName());
int lineCount = (int) Files.lines(path).count();
private static void readFirstFile(String path) throws Exception {
    File folder = new File(path);
    File[] files = folder.listFiles(File::isFile);
    if (null == files || files.length < 3) {
        return;
    }
    Arrays.sort(files, Comparator.comparing(File::getName));
    List<String> lines = FileUtils.readLines(files[0], "UTF-8");
    lines.forEach(System.out::println);
}