201631103228,201631101227

1.项目需求

对程序设计语言源文件统计字符数、单词数、行数,统计结果以指定格式输出到默认文件中,以及其他扩展功能,并能够快速地处理多个文件。

wc.exe -c     //返回文件的字符数

wc.exe -w      //返回文件的单词总数

wc.exe -l     //返回文件 的总行数,

wc.exe -o      //将结果输出到指定文件OutPut.txt

2.开发环境  eclipse

3.开发语言  JAVA

4.项目地址

未打包

一、源码地址:https://gitee.com/shuaiqin/WordCount

二、源码

package readTXT;
import java.io.BufferedReader;
import java.io.File;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.IOException;
import java.io.InputStreamReader;
import java.io.PrintWriter;
import java.util.Scanner;
public class ReadTxt {
      public static void main(String[] args) throws Exception {
  
    Scanner input = new Scanner(System.in);
    System.out.println("请输入文件路径:");
    String path = input.next();
    int countChar = 0;
    int countword = 0;
    int countline = 0;
    InputStreamReader isr = new InputStreamReader(new FileInputStream(path));
    //用来读取文件中的数据
    BufferedReader br = new BufferedReader(isr);//使用缓冲区,缓存输入的文档,可以使用缓冲区的read(),readLine()方法;
    while(br.read()!=-1)//read()=-1代表数据读取完毕
    {
     String s = br.readLine();
     countChar += s.length();//字符个数就是字符长度
     countword += s.split(" ").length;//split() 方法用于把一个字符串分割成字符串数组,字符串数组的长度,就是单词个数//在此只适用于英文
     countline++;//因为是按行读取,所以每次增加一即可计算出行的数目
    }
    isr.close();//关闭文件
    //新建一个txt文件
    File fp=new File("D:\\OutPut.txt");
    String strchar=Integer.toString(countChar);
    String strword=Integer.toString(countword);
    String strline=Integer.toString(countline);
   
   
    PrintWriter pfp=new PrintWriter(fp);
    pfp.println("字符数为:"+strchar);
    pfp.println("单词数为:"+strword);
    pfp.println("行数为:"+strline);
    pfp.close();
    System.out.println("OutPut.txt已经保存在D盘下");
    System.out.println("请输入字符命令:(-c查询字符数,-w查询单词数,-o查询行数)");
    String p=input.next();
    if(p.equals("-c"))
    {
     System.out.println("字符数:"+countChar);
    }else
       if(p.equals("-w"))
    {
      System.out.println("单词数:"+countword );
    }
     else
      if(p.equals("-o"))
    System.out.println("行数"+countline);
    }    
}
 
三、测试
    1.首先输入文件路径

2.文件OutPut.txt在D盘生成,并且将文件的字符数,单词数,行数写入

3.输入指定命令,获取相应的值

4.保存后的效果

WordCount(JAVA实现)的更多相关文章

  1. 个人项目:WordCount (Java)

    一.Github项目地址 https://github.com/misterchaos/WordCount 二.解题思路 2.1 基本需求分析 经过仔细阅读题目,分析得出项目的基本需求如下: wc.e ...

  2. WordCount( Java )

    Github项目地址:https://github.com/Sabot1203/WordCount 一. 题目描述 实现一个简单而完整的软件工具(源程序特征统计程序). 进行单元测试.回归测试.效能测 ...

  3. WordCount(Java实现)

    Github项目地址:https://github.com/linzworld/word-count 项目相关要求 题目描述 Word Count 实现一个简单而完整的软件工具(源程序特征统计程序). ...

  4. 大数据之路week07--day03(Hadoop深入理解,JAVA代码编写WordCount程序,以及扩展升级)

    什么是MapReduce 你想数出一摞牌中有多少张黑桃.直观方式是一张一张检查并且数出有多少张是黑桃. MapReduce方法则是: 1.给在座的所有玩家中分配这摞牌 2.让每个玩家数自己手中的牌有几 ...

  5. Eclipse 执行成功的 Hadoop-1.2.1 WordCount 源码

    万事开头难.最近在学习Hadoop,先是搭建各种版本环境,从2.2.0到2.3.0,再到1.2.1,终于都搭起来了,折腾了1周时间,之后开始尝试使用Eclipse编写小demo.仅复制一个现成的Wor ...

  6. 《Java学习笔记(第8版)》学习指导

    <Java学习笔记(第8版)>学习指导 目录 图书简况 学习指导 第一章 Java平台概论 第二章 从JDK到IDE 第三章 基础语法 第四章 认识对象 第五章 对象封装 第六章 继承与多 ...

  7. 【hadoop】——修改hadoop FileUtil.java,解决权限检查的问题

    在Hadoop Eclipse开发环境搭建这篇文章中,第15.)中提到权限相关的异常,如下: 15/01/30 10:08:17 WARN util.NativeCodeLoader: Unable ...

  8. hadoop的统计单词程序WordCount提示找不到WordCount类

    按这里的教程: http://www.imooc.com/learn/391 试验时,发现在wordcount的最后一步一直提示如下错误: Exception in thread "main ...

  9. 开源分布式实时计算引擎 Iveely Computing 之 WordCount 详解(3)

    WordCount是很多分布式计算中,最常用的例子,例如Hadoop.Storm,Iveely Computing也不例外.明白了WordCount在Iveely Computing上的运行原理,就很 ...

  10. Hadoop入门程序WordCount的执行过程

    首先编写WordCount.java源文件,分别通过map和reduce方法统计文本中每个单词出现的次数,然后按照字母的顺序排列输出, Map过程首先是多个map并行提取多个句子里面的单词然后分别列出 ...

随机推荐

  1. Boost在Linux 64 下的编译

    1. 下载最新版的boost wget https://dl.bintray.com/boostorg/release/1.67.0/source/boost_1_67_0.tar.gz 2. 解压 ...

  2. Spring DI的配置使用

    1.1.1 依赖和依赖注入Spring IOC容器的依赖有两层含义:Bean依赖容器和容器注入Bean的依赖资源:a.Bean依赖容器:也就是说Bean要依赖于容器,这里的依赖是指容器负责创建Bean ...

  3. make: *** No rule to make target `build', needed by `default'. Stop.

    [root@xx nginx-1.8.0]# makemake: *** No rule to make target `build', needed by `default'.  Stop. [ro ...

  4. 粗略了解fill与fill_n

    以前只知道数组赋值时用memset(): 而这几天却了解到了一个函数:fill(); 感觉以后会有用吧... std::fill template <class ForwardIterator, ...

  5. linux进入单用户方法-乾颐堂

    RedHat7.2 在使用GRUB引导程序的时候如何进入单用户 1.在出现GURB引导画面时,按字母e,进入GRUB编辑状态 2在引导菜单后添加“1”或single,选定它,然后按字母b,就可引导到单 ...

  6. ORM对象/关系模型

    1 ORM 对象关系映射(ORM)提供了概念性的.易于理解的模型化数据的方法.ORM方法论基于三个核心原则: 简单:以最基本的形式建模数据. 传达性:数据库结构被任何人都能理解的语言文档化. 精确性: ...

  7. eclipse netbeans 代码模板

    eclipse  代码模板  插入slf4j ${:import(org.slf4j.Logger,org.slf4j.LoggerFactory)} private static final Log ...

  8. linux命令的笔记

    1.改变目录的用户组和所有者 chown 命令 如下图: 可以看到test1与test2的的所有者和所属组都是root,其中 第三个字段是说明目录拥有者, 第四个字段是文件拥有者所在的组, 第五个字段 ...

  9. Tango Java API常数

    Tango Java API Constants常数 Constant Field Values常数字段值 Contents com.google.* com.google.* com.google. ...

  10. 编写高质量代码改善C#程序的157个建议——建议135: 考虑使用肯定性的短语命名布尔属性

    建议135: 考虑使用肯定性的短语命名布尔属性 布尔值无非就是True和False,所以应该用肯定性的短语来表示它,例如,以Is.Can.Has作为前缀. 布尔属性正确命名的一个示例如下: class ...