所选项目名称:文本替换      结对人:曲承玉

github地址 :https://github.com/bxoing1994/test/blob/master/源代码

结对人github地址:https://github.com/quchengyu/jiedui/tree/quchengyu-patch-1

用一个新字符串替换文本文件中所有出现每个字符串的地方。文件名和字符串都作为命令行参数进行传递。给出相应的测试文件和测试字符串。

项目设计方案

       一起选定项目敲定大体结构后,我负责测试和修改,搭档负责写的代码

首先,需要定义一个命令把文本文档读入内存,并进行异常处理;然后定义一个写数据流,以便于替换;最后将内存中修改后的内容写入文本文档。替换文本中的字符串用     cont = cont.replaceAll("private", "public");可替换全部字符串。

核心算法详细设计

  1. 1.         读数据流

public static String read(File src)

{  StringBuffer res = new StringBuffer();

String line = null;

try

{   BufferedReader reader = new BufferedReader(new FileReader(src));

while ((line = reader.readLine()) != null)

{

res.append(line + "\n");

}

reader.close();

}

定义一个数据流src,定义一个变量line用于存储文件内容,初始为空。读时最好一行一行的读,读一行向内存中写一行,如,

while ((line = reader.readLine()) != null)

{

res.append(line + "\n");

}

  1. 2.  写数据流

同读数据流一样定义一个disk,再定义一个变量cont存储操作值,最后刷新文件,关闭文件。

  1. 3.  异常处理

因为会出现如文件不存在等异常,需要定义异常处理,如,

catch (FileNotFoundException e)

{   e.printStackTrace();  }

catch (IOException e)

{   e.printStackTrace();  }

return res.toString(); }

完整源码

完整源码:给出完整的源代码。如:

import java.io.BufferedReader;

import java.io.BufferedWriter;

import java.io.File;

import java.io.FileNotFoundException;

import java.io.FileReader;

import java.io.FileWriter;

import java.io.IOException;

public class StringRpl {

public static String read(File src)

{  StringBuffer res = new StringBuffer();

String line = null;

try

{   BufferedReader reader = new BufferedReader(new FileReader(src));

while ((line = reader.readLine()) != null)

{

res.append(line + "\n");

}

reader.close();

}

catch (FileNotFoundException e)

{   e.printStackTrace();  }

catch (IOException e)

{   e.printStackTrace();  }

return res.toString(); }

public static boolean write(String cont, File dist)

{

try

{

BufferedWriter writer = new BufferedWriter(new FileWriter(dist));

writer.write(cont);

writer.flush();

writer.close();

return true;

}

catch (IOException e)

{

e.printStackTrace();

return false;

}

}

/*public StringRpl()

{

}*/

public static void main(String[] args)

{  File src = new File("a.txt");

String cont = StringRpl.read(src);

System.out.println(cont);

//对得到的内容进行处理

cont = cont.replaceAll("private", "public");

System.out.println(cont);  //更新源文件

System.out.println(StringRpl.write(cont, src));

}

}

使用说明与运行结果截图

使用说明:a.txt必须在工作区文件夹下。

运行结果截:运行前a.txt的样式。

运行成功后:

对文本文件的操作,读写数据都要存在,当读的文件较大时数分配的内存必须足够。

心得体会

这次任务让我们更好的懂得了两个人的合作,一个编写代码,一个进行调试与修改。比起一个人做,更效率也更成功

结对项目https://github.com/bxoing1994/test/blob/master/源代码的更多相关文章

  1. https://github.com/chenghuige/tensorflow-exp/blob/master/examples/sparse-tensor-classification/

        https://github.com/chenghuige/tensorflow-exp/blob/master/examples/sparse-tensor-classification/ ...

  2. https://github.com/python/cpython/blob/master/Doc/library/contextlib.rst 被同一个线程多次获取的同步基元组件

    # -*- coding: utf-8 -*- import time from threading import Lock, RLock from datetime import datetime ...

  3. https://github.com/golang/crypto/blob/master/bcrypt/bcrypt.go

    https://github.com/golang/crypto/blob/master/bcrypt/bcrypt.go

  4. 结对项目 https://github.com/quchengyu/jiedui/tree/quchengyu-patch-1

    所选项目名称:文本替换      结对人:傅艺伟 github地址 : https://github.com/quchengyu/jiedui/tree/quchengyu-patch-1 用一个新字 ...

  5. https://github.com/PyMySQL/PyMySQL/blob/master/pymysql/connections.py

    # Python implementation of the MySQL client-server protocol # http://dev.mysql.com/doc/internals/en/ ...

  6. https://github.com/tensorflow/models/blob/master/research/slim/datasets/preprocess_imagenet_validation_data.py 改编版

    #!/usr/bin/env python # Copyright 2016 Google Inc. All Rights Reserved. # # Licensed under the Apach ...

  7. 用swoole实现mysql的连接池--摘自https://github.com/153734009/doc/blob/master/php/mysql_pool.php

    <?php   $serv = new swoole_server("0.0.0.0", 9508);   $serv->set(['worker_num'=>1 ...

  8. GC 的认识(转) https://github.com/qcrao/Go-Questions/blob/master/GC/GC.md#1-什么是-gc有什么作用

    1. 什么是 GC,有什么作用? GC,全称 Garbage Collection,即垃圾回收,是一种自动内存管理的机制. 当程序向操作系统申请的内存不再需要时,垃圾回收主动将其回收并供其他代码进行内 ...

  9. go语言的一个gui 开源 项目 https://github.com/andlabs/ui

    go语言的一个gui 开源 项目  https://github.com/andlabs/ui 1 安装  mingw-w64  链接地址: http://mingw-w64.sourceforge. ...

随机推荐

  1. 如何快速安装visual studio 2017和破解

    https://sm.myapp.com/original/Development/vs_community__1229872941.1512460494-v15.5.0.exe visual stu ...

  2. jquery计算时间差(天、时、分、秒)并使用定时器实时获取

    类似网站抢购需求,会有个时间倒计时的展示(天.时.分.秒) 要拿到最终时间与当前时间对比,算出时间差并用定时器以秒的方式执行 实现代码: $(document).ready(function(){ r ...

  3. 在 Server 2008 企业版下, 安装 IIS 7 后,勾选好 请求筛选模块了。安装完毕后,"请求筛选"却不显示!

    下载并安装 Administration Pack 到你的Windows Server 2008 上.可以通过下面的链接来下载Administration Pack. https://www.iis. ...

  4. day10,11练习

    1.执行Python脚本两种方式? 略 2.简述位.字节关系? 8位一个字节 3.简述ASCII,Unicode,utf-8,gbk关系? ascii unicode utf8 4.请写出李杰分别用u ...

  5. day14 Python百分号字符串拼接

    拼接 # -*- coding:utf8 -*- #%s字符串,%d数字msg = '%s am %s my %s is %s'% (2,"charon","pluto& ...

  6. 在 Linux 上安装 Oracle 数据库 11g

    http://www.oracle.com/ocom/groups/public/@otn/documents/webcontent/229016_zhs.htm

  7. 常用zookeeper命令

    服务管理 启动ZK服务: zkServer.sh start 查看ZK状态: zkServer.sh status 停止ZK服务: zkServer.sh stop 重启ZK服务: zkServer. ...

  8. Python虚拟环境和包管理工具Pipenv的使用详解--看完这一篇就够了

    前言 Python虚拟环境是一个虚拟化,从电脑独立开辟出来的环境.在这个虚拟环境中,我们可以pip安装各个项目不同的依赖包,从全局中隔离出来,利于管理. 传统的Python虚拟环境有virtualen ...

  9. 9-(基础入门篇)云端安装MQTT服务器

    https://www.cnblogs.com/yangfengwu/p/9953703.html 记得把文件拷贝到上一节配置的和云端共享的那个盘里面,好拷贝文件到云服务器 进入到bin目录 咱先以控 ...

  10. 【转】Java生成图片验证码

    原文转自:http://blog.csdn.net/ruixue0117/article/details/22829557 看了挺多图片验证码的代码,感觉没什么长的好看点的,就自己动手写了个,写完发现 ...