结对项目 https://github.com/quchengyu/jiedui/tree/quchengyu-patch-1
所选项目名称:文本替换 结对人:傅艺伟
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/quchengyu/jiedui/tree/quchengyu-patch-1的更多相关文章
- 结对项目https://github.com/bxoing1994/test/blob/master/源代码
所选项目名称:文本替换 结对人:曲承玉 github地址 :https://github.com/bxoing1994/test/blob/master/源代码 结对人github地址:ht ...
- go语言的一个gui 开源 项目 https://github.com/andlabs/ui
go语言的一个gui 开源 项目 https://github.com/andlabs/ui 1 安装 mingw-w64 链接地址: http://mingw-w64.sourceforge. ...
- 结对项目junit测试用例
题目:我们假设我们要写一个整数除法的类,并且给他写测试用例. 结对分工:滕娟负责写代码,搜集资料,整理,潘广玫负责进行测试,处理测试结果 github地址链接: https://github.com/ ...
- 结对项目-四则运算"软件"之升级版
本次作业要求来自:https://edu.cnblogs.com/campus/gzcc/GZCC-16SE1/homework/2213 github地址为:https://github.com/L ...
- 201871030138-杨蕊媛 实验三 结对项目—《D{0-1}KP 实例数据集算法实验平台》项目报告
项目 内容 班级博客链接 https://edu.cnblogs.com/campus/xbsf/2018CST 这个作业要求链接 https://www.cnblogs.com/nwnu-daizh ...
- git推送项目到github并使用gitee做镜像仓库
2022最新版github入门教程,教你如何一步步创建自己的github账号并初始化仓库,然后使用git工具配置个人工作环境.配合gitee仓库,作为github的镜像仓库使用.这篇文章很基础,对萌新 ...
- [伟哥开源项目基金会](https://github.com/AspNetCoreFoundation)
伟哥开源项目基金会 GitHub_base=> 伟哥开源项目基金会 该项目作者为伟哥,GitHub地址:https://github.com/amh1979: 该项目维护者为鸟窝,GitHub地 ...
- 如何走上更高平台分享传递干货知识:(开通个人Github面向开源及私有软件项目的托管平台:https://github.com/zlslch/)(图文详解)(博主推荐)
不多说,直接上干货! https://github.com/ 欢迎大家,加入我的微信公众号:大数据躺过的坑 人工智能躺过的坑 同时,大家可以关注我的个人博客: http ...
- 【错误】上传新的项目出错 error: failed to push some refs to 'https://github.com/...
问题描述:在git bash中键入 $ git push origin master 进行提交的时候出现 如下错误: error: failed to push some refs to 'https ...
随机推荐
- Unity Ulua1.03优化记录
现在项目的框架是在2015年设计的,那时候Ulua还处于1.03版本,现在回头再看,Ulua已经迭代到1.25版本,中间引入带有wraper的cstolua,而后转向现有的toLua#版本. 随着版本 ...
- 函数重载(overload)
重载的定义及特点 在同一个类中,允许存在一个以上的同名函数, 只要他们的参数个数或者参数类型不同(不仅指两个重载方法的参数类型不同,还指相同参数拥有不同的参数类型顺序)就构成重载. 重载只和参数列表有 ...
- Spring容器技术内幕之BeanDefinition类介绍
引言 org.springframework.beans.factory.config.BeanDefinition是配置文件< bean >元素标签在容器中地内部表示.< bean ...
- Cocos2d-x 线程的使用及线程使用中遇到的问题
.h文件: #if CC_PLATFORM_ANDROID == CC_TARGET_PLATFORM #include "pthread.h" #endif #if CC_PLA ...
- Spring Boot中Web应用的统一异常处理
我们在做Web应用的时候,请求处理过程中发生错误是非常常见的情况.Spring Boot提供了一个默认的映射:/error,当处理中抛出异常之后,会转到该请求中处理,并且该请求有一个全局的错误页面用来 ...
- PHP批量抓取远程网页图片并存到本地实现方法和源码
做为一个仿站工作者,当遇到网站有版权时甚至加密的时候,WEBZIP也熄火,怎么扣取网页上的图片和背景图片呢.有时候,可能会想到用火狐,这款浏览器好像一个强大的BUG,文章有版权,屏蔽右键,火狐丝毫也不 ...
- ORACLE 11gR2 RAC添加删除(正常及强制)节点操作步骤(删除篇)
ORACLE 11gR2 RAC添加删除(正常及强制)节点操作步骤(删除篇) 本文主要转载 [ http://www.cnxdug.org/?p=2511 ] 有部分细节自己实验添加,再此谢谢前辈. ...
- win7重装系统
读了四年大学的计算机专业,说自己不会重装系统真的会笑掉大牙,但人家是女生,怕东怕西的,害怕弄坏自己的电脑,毕竟上计算机课最重要的是电脑,嘿嘿,其实是为了开wifi和看电视剧.今天终于有一台闲置的计算机 ...
- Spring任务调度器之Task的使用(转)
文章转自 http://blog.csdn.net/l454822901/article/details/51829307 最近发现真的凹凸了,spring升级到3后原来已经自带任务调度器了,之前还一 ...
- 如何在Ubuntu18.04(Bionic Beaver)系统安装Teamviewer远程控制软件
首先,打开TeamViewer的下载页面,下载Debian/Ubuntu的Deb安装包. 这里有64位和32位安装包选项.可以在Terminal(终端)中输入uname -a 查看自己系统版本是64位 ...