Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/365.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

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/list/4.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_List_File_For Loop_Filelist - Fatal编程技术网

Java 从列表中提取文件名

Java 从列表中提取文件名,java,list,file,for-loop,filelist,Java,List,File,For Loop,Filelist,在循环过程中,我的列表包含csv文件,我想获取文件名,在该文件名下保存我的输出 示例: 文件列表:t1.csv,t2.csv,t3.csv 输出列表应该如下所示:t1.xml、t2.xml、t3.xml sample.java List<String> csvFiles = new ArrayList<String>(); try { File[] files = new File(textCSV.getTe

在循环过程中,我的列表包含csv文件,我想获取文件名,在该文件名下保存我的输出

示例

文件列表:
t1.csv
t2.csv
t3.csv

输出列表应该如下所示:
t1.xml、t2.xml、t3.xml

sample.java

List<String> csvFiles = new ArrayList<String>();                            
try {
    File[] files = new File(textCSV.getText()).listFiles();
    for (File file : files) {
        if (file.isFile()) {
            csvFiles.add(file.getName());
        }
    }
    for(int i=0;i<csvFiles.size();i++) {
        System.out.println(csvFiles.get(i));                        
        String Output = ".xml" //how to put here csv name
    }
}
List csvFiles=new ArrayList();
试一试{
File[]files=新文件(textCSV.getText()).listFiles();
用于(文件:文件){
if(file.isFile()){
添加(file.getName());
}
}

对于(inti=0;i可以这样重写

List<String> csvFiles = new ArrayList<String>();                            
    try {
        File[] files = new File(textCSV.getText()).listFiles();
        for (File file : files) {
            if (file.isFile()) {
                csvFiles.add(file.getName());
            }
        }
        for(int i=0;i<csvFiles.size();i++)
        {
           System.out.println(csvFiles.get(i));             

           String Output = csvFiles.get(i).substring(0, csvFiles.get(i).indexOf(".")) + ".xml" //how to put here csv name
        }
    }
List csvFiles=new ArrayList();
试一试{
File[]files=新文件(textCSV.getText()).listFiles();
用于(文件:文件){
if(file.isFile()){
添加(file.getName());
}
}

对于(inti=0;i,我可以想出3种方法,在那里您可以只提取文件名

  • 使用Apache Commons库

    FilenameUtils.removeExtension(file.getName());
    
  • 如果您的文件总是包含至少一个扩展名(文件名中至少有一个“.”)

  • 如果存在不包含任何扩展名的文件

    int index = file.getName().lastIndexOf(".");
    if (index == -1) {
        file.getName();
    } else {
        file.getName().substring(0, index);
    }
    

  • 您可以将
    csvFiles.add(file.getName());
    替换为
    csvFiles.add();
    ,并将参数替换为上述任何一行。

    System.out.println(csvFiles.get(i).replace(“.csv”、“.xml”))
    thx,它也可以工作!如果文件名中包含多个“.”(点),也许您应该将
    indexOf
    替换为
    lastIndexOf
    int index = file.getName().lastIndexOf(".");
    if (index == -1) {
        file.getName();
    } else {
        file.getName().substring(0, index);
    }