结对项目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. ...
随机推荐
- web自动化-窗口句柄及位置变化
在进行web自动化时,很容易会遇到多窗口进行切换测试,下面就对多窗口的一些句柄和切换及窗口句柄顺序简单总结一下 from selenium import webdriver driver = webd ...
- ZooKeeper学习总结 第二篇:ZooKeeper深入探讨
其实zookeeper系列的学习总结很早就写完了,这段时间在准备找工作的事情,就一直没有更新了.下边给大家送上,文中如有不恰当的地方,欢迎给予指证,不胜感谢!. 1. 数据模型 1.1. 只适合存储小 ...
- 寒假集训——搜索 B - Sudoku
#include <stdio.h> #include <stdlib.h> #include <string.h> #include <iostream&g ...
- (7)Python赋值机制
- Swift中的反射
原文:http://www.cocoachina.com/applenews/devnews/2014/0623/8923.html Swift 事实上是支持反射的.只是功能略弱. 本文介绍主要的反射 ...
- 【知识碎片】getResource和getResourceAsStream
1. 前言 在Java中获取资源的时候,经常用到getResource和getResourceAsStream,本文总结一下这两种获取资源文件的路径差异. 2.Class.getResource(St ...
- Java 缓存技术之 ehcache
1. EHCache 的特点,是一个纯Java ,过程中(也可以理解成插入式)缓存实现,单独安装Ehcache ,需把ehcache-X.X.jar 和相关类库方到classpath中.如项目已安装了 ...
- day20 Python 高阶函数,函数,嵌套,闭包 装饰器
高阶函数定义 1.函数接收的参数是一个函数名 2.函数的返回值是一个函数名 3.满足上述条件任意一个都可以称之为高阶函数 一.函数的接收参数是一个函数名 import time def foo(): ...
- docker常用常用删除操作
文章参考 https://blog.csdn.net/superdangbo/article/details/78688904 https://www.cnblogs.com/jackadam/p/8 ...
- 20175310 《Java程序设计》第5周学习总结
20175310 <Java程序设计>第5周学习总结 本周博客: <20175310 迭代和JDB - 20175310xcy - 博客园> https://www.cnblo ...