java 读取文件 过滤_java读取txt文件,如何过滤掉注释以及空格

展开全部

import java.io.RandomAccessFile;

/**

* 格式

*

*

*

* @author cs12110 2018年11月16日

* @see

* @since 1.0

*/

public class FormatText {

public static void main(String[] args) {

e69da5e887aa62616964757a686964616f31333366303763try {

RandomAccessFile acf = new RandomAccessFile("d://FormatText.java", "r");

String line;

boolean isComment = true;

while (null != (line = acf.readLine())) {

// 去除前后空格

// line.trim();

String noneSpaceLine = removeAllSpace(line);

// 简单的注解

if (isSimpleComment(noneSpaceLine)) {

continue;

}

// 多行注解

if (noneSpaceLine.startsWith("/*")) {

isComment = true;

}

if (isComment && noneSpaceLine.endsWith("*/")) {

isComment = false;

continue;

}

if (!isComment) {

System.out.println(noneSpaceLine);

}

}

acf.close();

} catch (Exception e) {

e.printStackTrace();

}

}

private static boolean isSimpleComment(String line) {

if (line.startsWith("//")) {

return true;

}

return false;

}

/**

* 注意: 这里移除所有的空格,如果只想移除前后两端的,请使用: line.trim();

*

* @param line

*            行

* @return String

*/

private static String removeAllSpace(String line) {

StringBuilder b = new StringBuilder(line.length());

for (char ch : line.toCharArray()) {

int num = (int) ch;

if (num != 9 && num != 32) {

b.append(ch);

}

}

return b.toString();

}

}

测试数据为上面的java文件,测试结果如下publicclassFormatText{

publicstaticvoidmain(String[]args){

try{

RandomAccessFileacf=newRandomAccessFile("d://FormatText.java","r");

Stringline;

while(null!=(line=acf.readLine())){

StringnoneSpaceLine=removeAllSpace(line.trim());

if(isSimpleComment(noneSpaceLine)){

continue;

}

System.out.println(noneSpaceLine);

}

acf.close();

}catch(Exceptione){

e.printStackTrace();

}

}

privatestaticbooleanisSimpleComment(Stringline){

if(line.startsWith("//")){

returntrue;

}

returnfalse;

}

privatestaticStringremoveAllSpace(Stringline){

StringBuilderb=newStringBuilder(line.length());

for(charch:line.toCharArray()){

if(ch!=''){

b.append(ch);

}

}

returnb.toString();

}

}


版权声明:本文为weixin_35607472原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。