结对项目https://github.com/bxoing1994/test/blob/master/源代码
所选项目名称:文本替换 结对人:曲承玉
github地址 :https://github.com/bxoing1994/test/blob/master/源代码
结对人github地址:https://github.com/quchengyu/jiedui/tree/quchengyu-patch-1
用一个新字符串替换文本文件中所有出现每个字符串的地方。文件名和字符串都作为命令行参数进行传递。给出相应的测试文件和测试字符串。
项目设计方案
一起选定项目敲定大体结构后,我负责测试和修改,搭档负责写的代码
首先,需要定义一个命令把文本文档读入内存,并进行异常处理;然后定义一个写数据流,以便于替换;最后将内存中修改后的内容写入文本文档。替换文本中的字符串用 cont = cont.replaceAll("private", "public");可替换全部字符串。

核心算法详细设计
- 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");
}
- 2. 写数据流
同读数据流一样定义一个disk,再定义一个变量cont存储操作值,最后刷新文件,关闭文件。
- 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/源代码的更多相关文章
- https://github.com/chenghuige/tensorflow-exp/blob/master/examples/sparse-tensor-classification/
https://github.com/chenghuige/tensorflow-exp/blob/master/examples/sparse-tensor-classification/ ...
- 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 ...
- https://github.com/golang/crypto/blob/master/bcrypt/bcrypt.go
https://github.com/golang/crypto/blob/master/bcrypt/bcrypt.go
- 结对项目 https://github.com/quchengyu/jiedui/tree/quchengyu-patch-1
所选项目名称:文本替换 结对人:傅艺伟 github地址 : https://github.com/quchengyu/jiedui/tree/quchengyu-patch-1 用一个新字 ...
- 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/ ...
- 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 ...
- 用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 ...
- GC 的认识(转) https://github.com/qcrao/Go-Questions/blob/master/GC/GC.md#1-什么是-gc有什么作用
1. 什么是 GC,有什么作用? GC,全称 Garbage Collection,即垃圾回收,是一种自动内存管理的机制. 当程序向操作系统申请的内存不再需要时,垃圾回收主动将其回收并供其他代码进行内 ...
- go语言的一个gui 开源 项目 https://github.com/andlabs/ui
go语言的一个gui 开源 项目 https://github.com/andlabs/ui 1 安装 mingw-w64 链接地址: http://mingw-w64.sourceforge. ...
随机推荐
- 如何快速安装visual studio 2017和破解
https://sm.myapp.com/original/Development/vs_community__1229872941.1512460494-v15.5.0.exe visual stu ...
- jquery计算时间差(天、时、分、秒)并使用定时器实时获取
类似网站抢购需求,会有个时间倒计时的展示(天.时.分.秒) 要拿到最终时间与当前时间对比,算出时间差并用定时器以秒的方式执行 实现代码: $(document).ready(function(){ r ...
- 在 Server 2008 企业版下, 安装 IIS 7 后,勾选好 请求筛选模块了。安装完毕后,"请求筛选"却不显示!
下载并安装 Administration Pack 到你的Windows Server 2008 上.可以通过下面的链接来下载Administration Pack. https://www.iis. ...
- day10,11练习
1.执行Python脚本两种方式? 略 2.简述位.字节关系? 8位一个字节 3.简述ASCII,Unicode,utf-8,gbk关系? ascii unicode utf8 4.请写出李杰分别用u ...
- day14 Python百分号字符串拼接
拼接 # -*- coding:utf8 -*- #%s字符串,%d数字msg = '%s am %s my %s is %s'% (2,"charon","pluto& ...
- 在 Linux 上安装 Oracle 数据库 11g
http://www.oracle.com/ocom/groups/public/@otn/documents/webcontent/229016_zhs.htm
- 常用zookeeper命令
服务管理 启动ZK服务: zkServer.sh start 查看ZK状态: zkServer.sh status 停止ZK服务: zkServer.sh stop 重启ZK服务: zkServer. ...
- Python虚拟环境和包管理工具Pipenv的使用详解--看完这一篇就够了
前言 Python虚拟环境是一个虚拟化,从电脑独立开辟出来的环境.在这个虚拟环境中,我们可以pip安装各个项目不同的依赖包,从全局中隔离出来,利于管理. 传统的Python虚拟环境有virtualen ...
- 9-(基础入门篇)云端安装MQTT服务器
https://www.cnblogs.com/yangfengwu/p/9953703.html 记得把文件拷贝到上一节配置的和云端共享的那个盘里面,好拷贝文件到云服务器 进入到bin目录 咱先以控 ...
- 【转】Java生成图片验证码
原文转自:http://blog.csdn.net/ruixue0117/article/details/22829557 看了挺多图片验证码的代码,感觉没什么长的好看点的,就自己动手写了个,写完发现 ...