在循环期间,我的列表包含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
}
}
答案 0 :(得分:1)
你可以像这样重写。
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
}
}
答案 1 :(得分:1)
我可以想到3种方法,你只能提取文件名。
使用Apache Commons Library
FilenameUtils.removeExtension(file.getName());
如果您的文件始终至少包含一个扩展程序(文件名中至少有一个“。”)
file.getName().substring(0, file.getName().lastIndexOf("."));
如果文件中不包含任何扩展名
int index = file.getName().lastIndexOf(".");
if (index == -1) {
file.getName();
} else {
file.getName().substring(0, index);
}
您可以将csvFiles.add(file.getName());
替换为csvFiles.add();
,并将参数替换为以上任意一行。