代码行数统计java 代码行数统计idea

怎样把一个java代码中的有效代码行数 , 空行数,注释的行数分别打印出来 求高人指点呀基本代码行数统计java的模式已经给代码行数统计java你代码行数统计java了,代码行数统计java你可以自己变通修改下,要有这方面代码行数统计java的能力
import java.io.File;
import java.io.FileNotFoundException;
import java.util.Scanner;
public class Admin {
public static void main(String... args) {
try {
Scanner in = new Scanner(new File("D:/gao.java"));
int nulSum = 0;
int zhushiSum = 0;
while (in.hasNext()) {
String str = in.nextLine().trim();
if ("".equals(str)) {
nulSum;
}
if (str.startsWith("//")) {
zhushiSum;
}
}
System.out.println("空行:"nulSum);
System.out.println("注释:"zhushiSum);
} catch (FileNotFoundException e) {
e.printStackTrace();
}
}
}
java 读取文件 并计算文件的字节数,单词数和行数? 求高人指点,谢谢话不多说先上代码
Scanner sc = new Scanner(f);
int i = 0, j=0, k=0;
while(sc.hasNext()) {
sc.next();
i;
}
sc = new Scanner(f);
while(sc.hasNextLine()) {
sc.nextLine();
j;
}
sc = new Scanner(f);
while(sc.hasNextByte()) {
sc.nextByte();
k;
}
System.out.println(i " " j " " k);
然后区分一下字节和字符的概念,一个字节是一个8位的2进制数,一个字符是'a'、'1'这种
楼主是不是说的统计字符呢
scanner类中并没有统计字符的方法 用filereader貌似方便一点
这是只是提供一个思路,多查api文档,多用google,这类问题都不叫问题 。
搜到这段代码后,我表示很惭愧
public class Test {
public static void main(String[] args) throws Exception{
Scanner input=new Scanner(System.in);
System.out.println("请输入路径");
String path=input.next();
int charNum= 0 ;
int wordsNum= 0;
int lineNum = 0;
InputStreamReader isr = new InputStreamReader(new FileInputStream(path));
BufferedReader br = new BufferedReader(isr);
while( br.read()!= -1){
String s = br.readLine();
charNum =s.length();
wordsNum=s.split(" ").length;
lineNum;
}
isr.close();//关闭
System.out.println("字符数:" charNum "\t单词数:" wordsNum "行数:" lineNum);
}
}
解压 JDK 中的 src.zip 文件,在 FileUtil 类中统计 java 目录(java包)中:代码如下:
import java.io.BufferedInputStream;
import java.io.BufferedOutputStream;
import java.io.BufferedReader;
import java.io.File;
import java.io.FileFilter;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.FilenameFilter;
import java.io.IOException;
import java.io.InputStreamReader;
import java.util.Enumeration;
import java.util.zip.ZipEntry;
import java.util.zip.ZipFile;
final class FileUtil {
/**
* 解压 zip 文件到指定路径
* @param zipFilePath
* @param unzipDirPath
* @return
* @throws IOException
*/
public static void unzip(String zipFilePath, String unzipDirPath) throws IOException {
unzip(new File(zipFilePath), unzipDirPath);
}
/**
* 解压 zip 文件到指定路径
* @param zipFile zip 文件
* @param unzipDirPath 解压路径
* @throws IOException
*/
public static void unzip(File zipFile, String unzipDirPath) throws IOException {
File unzipDir = new File(unzipDirPath);
// 如果解压目录不存在,则创建解压目录
if (!unzipDir.exists()) {
unzipDir.mkdirs();
}
try (ZipFile zip = new ZipFile(zipFile)) {
Enumeration? extends ZipEntry entries = zip.entries();
while (entries.hasMoreElements()) {
ZipEntry entry = entries.nextElement();
String file = entry.getName();
int index = file.lastIndexOf("/");
String entryDirPath = unzipDirPath;
if (index != -1) {
entryDirPath = unzipDirPathFile.separatorfile.substring(0, index);
}
File entryDir = new File(entryDirPath);
if (!entryDir.exists()) {
entryDir.mkdirs();
}
String entryFilePath = unzipDirPathFile.separatorfile;
try ( BufferedOutputStream bos = new BufferedOutputStream(new FileOutputStream(entryFilePath));
BufferedInputStream bis = new BufferedInputStream(zip.getInputStream(entry)) ) {
byte[] buffer = new byte[1024];
int len = 0;
while ((len = bis.read(buffer)) != -1) {
bos.write(buffer, 0, len);
}
}
}
}
}
/**
* 统计指定目录及其子目录下的文件或文件夹数量
* @param dirPath 需要统计的目录路径
* @param filter 过滤器
* @return 统计数量
* @throws FileNotFoundException 如果指定的目录不存在 , 则抛出此异常
*/
public static int count(String dirPath, FileFilter filter) throws FileNotFoundException {
return count(new File(dirPath), filter);
}
/**
* 统计指定目录及其子目录下的文件或文件夹数量
* @param dir 需要统计的目录
* @param filter 过滤器
* @return 统计数量
* @throws FileNotFoundException 如果指定的目录不存在,则抛出此异常
*/
public static int count(File dir, FileFilter filter) throws FileNotFoundException {
int count = 0;
if (!dir.exists()) {
throw new FileNotFoundException(dir.getPath());
}
for (File file : dir.listFiles()) {
if (filter.accept(file)) {
count;
}
if (file.isDirectory()) {
count= count(file.getAbsolutePath(), filter);
}
}
return count;
}
/**
* 统计指定目录及其子目录下的所有文件内容行数总和
* @param dirPath 需要进行统计的目录路径
* @param filter 过滤器
* @return 行数总和
* @throws IOException
*/
public static int countFileLines(String dirPath, FilenameFilter filter) throws IOException {
return countFileLines(new File(dirPath), filter);
}
/**
* 统计指定目录及其子目录下的所有文件内容行数总和
* @param dir 需要进行统计的目录
* @param filter 过滤器
* @return 行数总和
* @throws IOException
*/
public static int countFileLines(File dir, FilenameFilter filter) throws IOException {
if (!dir.exists()) {
throw new FileNotFoundException(dir.getAbsolutePath());
}
int numberOfLines = 0;
for (File file : dir.listFiles()) {
if (file.isFile()filter.accept(dir, file.getName())) {
numberOfLines= countFileLines(file);
} else if (file.isDirectory()) {
numberOfLines= countFileLines(file, filter);
}
}
return numberOfLines;
}
/**
* 统计指定文件内容行数
* @param file 需要进行统计的文件
* @return 文件内容行数
* @throws FileNotFoundException 如果指定文件不存在,则抛出此异常
* @throws IOException
*/
public static int countFileLines(File file) throws FileNotFoundException, IOException {
if (file == null) {
throw new NullPointerException("file");
}
if (!file.isFile()) {
return 0;
}
int numberOfLines = 0;
try ( InputStreamReader streamReader = new InputStreamReader(new FileInputStream(file));
BufferedReader bufferedReader = new BufferedReader(streamReader)) {
while(bufferedReader.readLine() != null) {
numberOfLines;
}
}
return numberOfLines;
}
}
public class App {
public static void main(String[] args) throws IOException {
// 获取 Java 安装目录,如果没有则需手动设置目录
String javaHome = System.getenv("JAVA_HOME");
// src.zip 文件
File srcZip = new File(javaHomeFile.separator"src.zip");
// 解压目录路径
String unzipDirPath = "d:\\temp\\java";
System.out.println("正在解压 src.zip ...");
// 解压 src.zip 到 d:\temp\java 文件夹
FileUtil.unzip(srcZip.getAbsolutePath(), unzipDirPath);
System.out.println("正在统计文件夹数量 ...");
// 统计文件夹数量
int dirCount = FileUtil.count(unzipDirPath, f - f.isDirectory());
System.out.println("正在统计Java文件数量 ...");
// 统计Java文件数量
int fileCount = FileUtil.count(unzipDirPath, f - f.isFile()f.getName().endsWith(".java"));
System.out.println("正在统计所有Java文件的总行数 ...");
// 统计 .java 文件内容行数
int numberOfFileLines = FileUtil.countFileLines(unzipDirPath, (dir, name) - name.endsWith(".java"));
System.out.println("文件夹数量:"dirCount);
System.out.println("文件数量:"fileCount);
System.out.println("所有Java文件的总行数:"numberOfFileLines);
}
}
【代码行数统计java 代码行数统计idea】关于代码行数统计java和代码行数统计idea的介绍到此就结束了 , 不知道你从中找到你需要的信息了吗 ?如果你还想了解更多这方面的信息,记得收藏关注本站 。

    推荐阅读