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();

}

}

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值