source count




import java.io.BufferedReader;
import java.io.File;
import java.io.FileNotFoundException;
import java.io.FileReader;
import java.io.IOException;

public class ReadFile {
    
    
static long normalLines = 0;
    
static long commentLines = 0;
    
static long whiteLines = 0;
    
    
public ReadFile() {
    }


    
/**
     * DELETE all folder and files
     * 
@param delpath String
     * 
@throws FileNotFoundException
     * 
@throws IOException
     * 
@return boolean
     
*/

    
public static boolean deletefile(String delpath)
            
throws FileNotFoundException, IOException {
        
try {

            File file 
= new File(delpath);
            
if (!file.isDirectory()) {
                System.out.println(
"1");
                file.delete();
            }
 else if (file.isDirectory()) {
                System.out.println(
"2");
                String[] filelist 
= file.list();
                
for (int i = 0; i < filelist.length; i++{
                    File delfile 
= new File(delpath + "/" + filelist[i]);
                    
if (!delfile.isDirectory()) {
                        System.out.println(
"path=" + delfile.getPath());
                        System.out.println(
"absolutepath="
                                
+ delfile.getAbsolutePath());
                        System.out.println(
"name=" + delfile.getName());
                        delfile.delete();
                        System.out.println(
"DELETE SUCCESS");
                    }
 else if (delfile.isDirectory()) {
                        deletefile(delpath 
+ "/" + filelist[i]);
                    }

                }

                file.delete();

            }


        }
 catch (FileNotFoundException e) {
            System.out.println(
"deletefile()   Exception:" + e.getMessage());
        }

        
return true;
    }


    
/**
     * READ all folder and files
     * 
@param delpath String
     * 
@throws FileNotFoundException
     * 
@throws IOException
     * 
@return boolean
     
*/

    
public static boolean readfile(String filepath)
            
throws FileNotFoundException, IOException {
        
try {

            File file 
= new File(filepath);
            
if (!file.isDirectory()) {
                System.out.println(
"file");
                System.out.println(
"path=" + file.getPath());
                System.out.println(
"absolutepath=" + file.getAbsolutePath());
                System.out.println(
"name=" + file.getName());

            }
 else if (file.isDirectory()) {
                System.out.println(
"folder=" + file.getName());
                String[] filelist 
= file.list();
                
for (int i = 0; i < filelist.length; i++{
                    File readfile 
= new File(filepath + "/" + filelist[i]);
                    
if (!readfile.isDirectory()) {
                        System.out.println(
"--------------------------------------------");
                        System.out.println(
"path=" + readfile.getPath());
                        System.out.println(
"absolutepath="
                                
+ readfile.getAbsolutePath());
                        System.out.println(
"name=" + readfile.getName());
                        parse(readfile);
                    }
 else if (readfile.isDirectory()) {
                        readfile(filepath 
+ "/" + filelist[i]);
                    }

                }


            }


        }
 catch (FileNotFoundException e) {
            System.out.println(
"readfile() Exception:" + e.getMessage());
        }

        
return true;
    }


    
private static void parse(File f) {
        BufferedReader br 
= null;
        
boolean comment = false;
        
try {
            br 
= new BufferedReader(new FileReader(f));
            String line 
= "";
            
while((line = br.readLine()) != null{
                line 
= line.trim();
                
if(line.matches("^[/s&&[^/n]]*$")) {
                    whiteLines 
++;
                }
 
                
else if (line.startsWith("/*"&& !line.endsWith("*/")) {
                    commentLines 
++;
                    comment 
= true;    
                }
 
                
else if (line.startsWith("/*"&& line.endsWith("*/")) {
                    commentLines 
++;
                }
 
                
else if (true == comment) {
                    commentLines 
++;
                    
if(line.endsWith("*/")) {
                        comment 
= false;
                    }

                }
 
                
else if (line.startsWith("//")) {
                    commentLines 
++;
                }
 
                
else {
                    normalLines 
++;
                }

            }

        }
 catch (FileNotFoundException e) {
            e.printStackTrace();
        }
 catch (IOException e) {
            e.printStackTrace();
        }
 finally {
            
if(br != null{
                
try {
                    br.close();
                    br 
= null;
                }
 catch (IOException e) {
                    e.printStackTrace();
                }

            }

        }

    }

    
    
public static void main(String[] args) {
        
try {
            readfile(
"D:/file");
            
//deletefile("D:/file");
        }
 
        
catch (FileNotFoundException ex) {
            ex.printStackTrace();
        }
 
        
catch (IOException ex) {
            ex.printStackTrace();
        }

        System.out.println(
"ok");
        System.out.println(
"normalLines:" + normalLines);
        System.out.println(
"commentLines:" + commentLines);
        System.out.println(
"whiteLines:" + whiteLines);
    }

}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值