Java 显示从地图读取的总行数
我有一个应用程序,在这个应用程序中,用户选择一个特定的文件夹,然后计算该文件夹中的所有文件以及这些文件中的代码行,并在控制台上显示文件名和其中的代码行。这是我的一段代码Java 显示从地图读取的总行数,java,Java,我有一个应用程序,在这个应用程序中,用户选择一个特定的文件夹,然后计算该文件夹中的所有文件以及这些文件中的代码行,并在控制台上显示文件名和其中的代码行。这是我的一段代码 Map<String, Integer> result = new HashMap<String, Integer>(); File directory = new File(chooser.getSelectedFile().getAbsolutePath());
Map<String, Integer> result = new HashMap<String, Integer>();
File directory = new File(chooser.getSelectedFile().getAbsolutePath());
File[] files = directory.listFiles();
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);
}
}
}
for (Map.Entry<String, Integer> entry : result.entrySet())
{ System.out.println(entry.getKey() + " ==> " + entry.getValue());
} }
Map result=newhashmap();
文件目录=新文件(chooser.getSelectedFile().getAbsolutePath());
File[]files=目录.listFiles();
用于(文件:文件)
{
if(file.isFile())
{Scanner Scanner=new Scanner(new FileReader(file));
int lineCount=0;
尝试
{for(lineCount=0;scanner.nextLine()!=null;lineCount++);
}捕获(无接触元素例外e)
{result.put(file.getName(),lineCount);
}
}
}
for(Map.Entry:result.entrySet())
{System.out.println(entry.getKey()+“==>”+entry.getValue());
} }
但我想再增加一个功能,它还应该显示所有文件的总行数让我们假设这6个单独的文件有10行代码,每行代码的总和是10*6,即总共读取60行,如何实现这一点请告知为什么不为每个地图输入值添加一个计数器,并将其添加到计数器/累加器中,然后打印出来:
Map<String, Integer> result = new HashMap<String, Integer>();
File directory = new File(chooser.getSelectedFile().getAbsolutePath());
File[] files = directory.listFiles();
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);
}
}
}
int lineCounter = 0;
for (Map.Entry<String, Integer> entry : result.entrySet())
{
System.out.println(entry.getKey() + " ==> " + entry.getValue());
lineCounter+=entry.getValue();
}
System.out.println(String.valueOf(lineCounter));
Map result=newhashmap();
文件目录=新文件(chooser.getSelectedFile().getAbsolutePath());
File[]files=目录.listFiles();
用于(文件:文件)
{
if(file.isFile())
{
Scanner Scanner=新扫描仪(新文件读取器(文件));
int lineCount=0;
尝试
{for(lineCount=0;scanner.nextLine()!=null;lineCount++);
}捕获(无接触元素例外e)
{result.put(file.getName(),lineCount);
}
}
}
int lineCounter=0;
for(Map.Entry:result.entrySet())
{
System.out.println(entry.getKey()+“==>”+entry.getValue());
lineCounter+=entry.getValue();
}
System.out.println(String.valueOf(lineCounter));
要显示您正在读取的所有文件的总行数,您需要将每个文件的行数相加为另一个变量
Map<String, Integer> result = new HashMap<String, Integer>();
File directory = new File(chooser.getSelectedFile().getAbsolutePath());
File[] files = directory.listFiles();
int totalLineCount = 0;
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("Total line count = "+ totalLineCount);
for (Map.Entry<String, Integer> entry : result.entrySet())
{ System.out.println(entry.getKey() + " ==> " + entry.getValue());
} }
Map result=newhashmap();
文件目录=新文件(chooser.getSelectedFile().getAbsolutePath());
File[]files=目录.listFiles();
int totalinecount=0;
用于(文件:文件)
{
if(file.isFile())
{Scanner Scanner=new Scanner(new FileReader(file));
int lineCount=0;
尝试
{for(lineCount=0;scanner.nextLine()!=null;lineCount++);
}捕获(无接触元素例外e)
{result.put(file.getName(),lineCount);
TotalineCount+=行数;
}
}
}
System.out.println(“总行数=“+totalinecount”);
for(Map.Entry:result.entrySet())
{System.out.println(entry.getKey()+“==>”+entry.getValue());
} }
因此,如果您有10个文件,每个文件有6行,那么TotalineCount应该是60