gpt4 book ai didi

java - 从文件夹中读取java文件

转载 作者:行者123 更新时间:2023-12-02 07:43:30 26 4
gpt4 key购买 nike

我开发了一个应用程序,可以从用户选择的文件夹中读取文件。它显示每个文件中有多少行代码。我只想在文件选择器中显示 Java 文件(具有 .java 扩展名的文件)。下面是我的代码:

 public static void main(String[] args) throws FileNotFoundException {

JFileChooser chooser = new JFileChooser();
chooser.setCurrentDirectory(new java.io.File("C:" + File.separator));
chooser.setDialogTitle("FILES ALONG WITH LINE NUMBERS");
chooser.setFileSelectionMode(JFileChooser.DIRECTORIES_ONLY);
chooser.setAcceptAllFileFilterUsed(false);
if (chooser.showOpenDialog(null) == JFileChooser.APPROVE_OPTION)
{ Map<String, Integer> result = new HashMap<String, Integer>();
File directory = new File(chooser.getSelectedFile().getAbsolutePath());
int totalLineCount = 0;
File[] files = directory.listFiles(new FilenameFilter(){
@Override
public boolean accept(File dir, String name) {
return name.matches("\\*\\.java");
}
}
);
for (File file : files)
{
if (file.isFile())
{ Scanner scanner = new Scanner(new FileReader(file));
int lineCount = 0;
try
{ for (lineCount = 0; scanner.nextLine() != null; lineCount++) ;
} catch (NoSuchElementException e)
{ result.put(file.getName(), lineCount);
totalLineCount += lineCount;
}


} }
System.out.println("*****************************************");
System.out.println("FILE NAME FOLLOWED BY LOC");
System.out.println("*****************************************");

for (Map.Entry<String, Integer> entry : result.entrySet())
{ System.out.println(entry.getKey() + " ==> " + entry.getValue());
}
System.out.println("*****************************************");
System.out.println("SUM OF FILES SCANNED ==>"+"\t"+result.size());
System.out.println("SUM OF ALL THE LINES ==>"+"\t"+ totalLineCount);

}

我也编辑了,但仍然不起作用,请指教请告知如何仅读取以 .java 作为扩展名的文件,换句话说,仅读取文件夹中的 java 文件,请告知

最佳答案

您需要一个文件名过滤器。这应该适合你:

FilenameFilter javaFileFilter= new FilenameFilter() {  
@Override
public boolean accept(File logDir, String name) {
return name.endsWith(".java")
}
};

关于java - 从文件夹中读取java文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11248847/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com