博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
I/O编程软件题(Java语言)
阅读量:6760 次
发布时间:2019-06-26

本文共 3524 字,大约阅读时间需要 11 分钟。

有一个日志文件log.txt,每行一条,前面是固定长度的时间,后面是日志级别和日志内容,如:

20160801 09:40:24 INFO aaaaaaaaaaaa

20160801 09:40:25 WARNING bbbbbbbbbbbbbbbbbbbb
20160801 09:41:10 ERROR cccccccccccc
20160801 09:43:24 INFO ddddddd
20160801 09:45:01 ERROR eeeeeeeeeee

请写段代码把级别为ERROR的行(除去 ERROR)输出到error.txt,如:

20160801 09:41:10 cccccccccccc

20160801 09:45:01 eeeeeeeeeee 

 

这个是一个简单的I/O流对文本的操作,只要熟悉I/O的基本操作应该就可以编写出来。

 

方法一:

1.我首先想到的是使用BufferedReader对log.txt文件进行整行读取,这是我使用BufferedReader最主要的原因;

2.判断是否整行不为空;

3. 使用String类中的indexOf方法若得到"ERROR"首地址位置则进行下面操作 否则退到步骤2 读取下一行;

4.通过BufferedWriter进行对error.txt写操作;

5.使用String类substring方法从包含"ERROR"改行的地址0写到 步骤2所得到的首地址位置      加上    从步骤2得到的首地址位置+5(ERROR5个偏移量)写到尾;

 

代码实现:

1 import java.io.BufferedReader; 2 import java.io.BufferedWriter; 3 import java.io.FileInputStream; 4 import java.io.FileNotFoundException; 5 import java.io.FileReader; 6 import java.io.FileWriter; 7 import java.io.IOException; 8 import java.io.PrintWriter; 9 10 public class Error {11 12     /**13      * @param args14      * @throws IOException 15      */ 16     public static void main(String[] args)  {17         // TODO Auto-generated method stub18         try {19             BufferedReader br = new BufferedReader(new FileReader("src/Test/log.txt"));20             BufferedWriter bw = new BufferedWriter(new FileWriter("src/Test/Error.txt"));21             int startValue = 0;22             String str = null;23             while((str = br.readLine()) != null){24                 if ((startValue = str.indexOf("ERROR")) > 0){25                     bw.write((str.substring(0, startValue) 26                         + str.substring(startValue + 5, str.length())));    27                     bw.newLine();28                     bw.flush();29                 }    30             }31             br.close();32             bw.close();33             34         } catch (IOException e) {35             // TODO Auto-generated catch block36             e.printStackTrace();37         }38     }39 40 }

 

 

方法二:

 

前面步骤是一样的,从第三部开始变化:

3.使用String类中的contains方法判断是否该行是否包含"ERROE",若包含则进行下面步骤操作否则继续判断;

4.使用replace方法将ERROR替代为空字符;

5.使用BufferedWriter将信息写到error.txt文本中。

 

代码实现:

1 import java.io.BufferedReader; 2 import java.io.BufferedWriter; 3 import java.io.FileInputStream; 4 import java.io.FileNotFoundException; 5 import java.io.FileReader; 6 import java.io.FileWriter; 7 import java.io.IOException; 8 import java.io.PrintWriter; 9 10 public class Error {11 12     /**13      * @param args14      * @throws IOException 15      */ 16     public static void main(String[] args)  {17         // TODO Auto-generated method stub18         try {19             BufferedReader br = new BufferedReader(new FileReader("src/Test/log.txt"));20             BufferedWriter bw = new BufferedWriter(new FileWriter("src/Test/Error.txt"));21             int startValue = 0;22             String str = null;    23             while((str = br.readLine()) != null){24                 if(str.contains("ERROR")){         25                     str = str.replace(" ERROR", "");26                     bw.write(str);27                     bw.newLine();28                     bw.flush();29                 }30             }31             br.close();32             bw.close();33             34         } catch (IOException e) {35             // TODO Auto-generated catch block36             e.printStackTrace();37         }38     }39 40 }

现在慢慢学会对学习东西进行一些基本的整理,以便它日需要用能够顺手找到,这样也锻炼一下自己的叙说能力,能不能将问题的基本逻辑讲清楚。总之这感觉不错哦。

这个一道XXX公司的一道编程笔试题!去年留下来准备,今年要进行找工作了!用来练练手O(∩_∩)O~

转载于:https://www.cnblogs.com/ZNwithLC/p/7450099.html

你可能感兴趣的文章
【笔记】iOS开发基础笔记<—>
查看>>
Hub与交换机的区别
查看>>
基于Spark GraphX计算二度关系
查看>>
LeetCode - Pascal's Trangle
查看>>
LeetCode OJ - Validate Binary Search Tree
查看>>
JavaScript基础知识之 每日一题(网上搜罗来滴)
查看>>
最好用最方便最适合程序员使用的为知笔记
查看>>
MSI文件的制作
查看>>
计算机基础------网络
查看>>
A线段树
查看>>
SpringMVC视图解析器 转
查看>>
转s2sh三大框架整合过程(仅供参考)
查看>>
构建之法---阅读报告
查看>>
{ubuntu}乱七八糟重命名为1 2 3.....png
查看>>
【树形DP】【P1364】医院放置
查看>>
JSP第5次测试---测试分析
查看>>
区别:并发与并行
查看>>
SQL 2000 无法添加、更新或删除从MSX服务器上发起的作业
查看>>
python18-day5
查看>>
企业称重防作弊概述 称重软件
查看>>