I/O流之FileWriter西游记

Posted 周娟娟

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了I/O流之FileWriter西游记相关的知识,希望对你有一定的参考价值。

需求:

1)在《西游记》这本小说中,读取内容,统计某个词(任意词)出现的次数。
2)统计这本书一共有多少章(回)
3)统计这本书中一共有多少句子(带标点就算一句)

 


 

代码:

 

  1 package 课后练习;
  2 
  3 import java.io.BufferedReader;
  4 import java.io.File;
  5 import java.io.FileNotFoundException;
  6 import java.io.FileReader;
  7 import java.io.IOException;
  8 
  9 /**
 10  * 功能: 
 11  * 1)在《西游记》这本小说中,读取内容,统计某个词(任意词)出现的次数。
 12  * 2)统计这本书一共有多少章(回)
 13  * 3)统计这本书中一共有多少句子(带标点就算一句)
 14  * @author Administrator
 15  */
 16 public class XiYouJi {
 17 
 18 
 19     /**功能: 
 20      * @param args
 21      */
 22     public static void main(String[] args) {
 23         
 24         int countWord = getWordCount("三藏");
 25         System.out.println("三藏出现的次数:"+countWord);
 26         
 27         int countChapter = getChapter();
 28         System.out.println("西游记总共有:"+countChapter+"个章节");
 29         
 30         int countSentance = getSentanceCount();
 31         System.out.println("西游记总共有:"+countSentance+"个句子");
 32     }
 33     
 34     /**
 35      * 功能: 3)统计这本书中一共有多少句子(带标点就算一句)
 36      * @return
 37      */
 38     private static int getSentanceCount() {
 39         BufferedReader br = null;
 40         int num = 0;
 41         try {
 42             br = new BufferedReader(new FileReader(new File("E:/JavaSECode/7月/Me/day16/src/课后练习/西游记.txt")));
 43             String readLine =null;
 44             while ((readLine = br.readLine()) != null) {
 45                 num += readLine.split("").length-1;
 46                 if (readLine.contains("")) {
 47                     num++;
 48                 }
 49                 if (readLine.contains("")) {
 50                     num++;
 51                 }
 52             }
 53         } catch (IOException e) {
 54             e.printStackTrace();
 55         }
 56         return num;
 57     }
 58     
 59     /**
 60      * 功能: 统计这本书一共有多少章(回)
 61      * @return
 62      */
 63     private static int getChapter() {
 64         BufferedReader br = null;
 65         int num = 0;
 66         try {
 67             br = new BufferedReader(new FileReader(new File("E:/JavaSECode/7月/Me/day16/src/课后练习/西游记.txt")));
 68             String readLine = null;
 69             while ((readLine = br.readLine()) != null) {
 70                 if (readLine.startsWith("") && readLine.endsWith("") && (readLine.length() < 6)) {
 71                     num++;
 72                 }
 73             }
 74         } catch (IOException e) {
 75             e.printStackTrace();
 76         }
 77         return num;
 78     }
 79 
 80     /**
 81      * 功能: 1)在《西游记》这本小说中,读取内容,统计某个词(任意词)出现的次数。
 82      * @param word
 83      * @return
 84      */
 85     private static int getWordCount(String word) {
 86         int count = 0;
 87         BufferedReader br = null;
 88         try {
 89             br = new BufferedReader(new FileReader(new File("E:/JavaSECode/7月/Me/day16/src/课后练习/西游记.txt")));
 90             String str = null;
 91             while ((str = br.readLine()) != null) {
 92                 count += str.split(word).length-1;
 93                 if (str.endsWith(word)) {
 94                     count++;
 95                 }
 96             }
 97         } catch (IOException e) {
 98             e.printStackTrace();
 99         } finally {
100             if (br != null) {
101                 try {
102                     br.close();
103                 } catch (IOException e) {
104                     e.printStackTrace();
105                 }
106             }
107         }
108         return count;
109     }
110 
111 }

 


 

运行结果:

 

以上是关于I/O流之FileWriter西游记的主要内容,如果未能解决你的问题,请参考以下文章

I/O流之字节流

Java中I/O流之缓冲流

Java中I/O流之Objectt流

Java中I/O流之数据流

JAVA-初步认识-I/O流(字节流-FileWriter-细节-换行和续写)

java - I/O - FileReader, FileWriter