结对项目https://github.com/bxoing1994/test/blob/master/源代码

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

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

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

项目设计方案

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

首先,需要定义一个命令把文本文档读入内存,并进行异常处理;然后定义一个写数据流,以便于替换;最后将内存中修改后的内容写入文本文档。替换文本中的字符串用     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的样式。

运行成功后:

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

心得体会

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

时间: 2024-10-29 19:09:12

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

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 Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. # You may obtain a copy of the License

用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, 'task_worker_num'=>5]);   function onReceive($serv, $fd, $from_id, $data)   {   $sql = $data;   $result = $serv->taskwait($sql);   if($result !== f

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

go语言的一个gui 开源 项目  https://github.com/andlabs/ui 1 安装  mingw-w64  链接地址: http://mingw-w64.sourceforge.net/download.php 2 liteide 配置: # native compiler windows 386 GOROOT=c:\go GOBIN=%GOROOT%\bin GOARCH=386 GOOS=windows CGO_ENABLED=1 PATH=C:\Program Fil

结对项目 - 词频统计Ⅱ

目的与要求 代码复审练习 结对练习 编写单元测试 基于上一个结对项目的结果,读取小文本文件A_Tale_of_Two_Cities.txt 或者 大文本文件Gone_with_the_wind.txt,统计某一指定单词在该文本文件中出现的频率. 命令行格式: 提示符> Myapp.exe -f filename.txt -w word (PS:C++ 程序,Java 程序输出方式类似) 解释: 选项 -f 表示打开某一文件 选项 -w 表示统计其后单词在打开的文件中的频率 详细内容 开发语言:J

结对项目 万年历

一.题目简介 所选项目名称:万年历. 项目需求描述,主要指应实现的主要功能. 实现了日历的查询,方便使用.界面主要是由查询输入部分和结果显示部分两部分组成. 查询输入:①一个文本域,用于输入年份. ②一个选择下拉列表框:用于选择月份. ③ 一个选择按钮:用来选择查询事件. 四.代码地址  https://github.com/huangjingyi/wannianli/blob/master/wannianli   五.结对分工过程 首先应该是结对编程可提高效率,结对编程的时候,两个人可以分开做

结对项目 - 词频统计

目的与要求 代码复审练习 结对练习 编写单元测试 基于作业3的结果,读取一个较小的文本文件A_Tale_of_Two_Cities.txt,统计该文件中的单词的频率,并将统计结果输出到当前目录下的 Result1.txt 文件. (第一阶段初稿完成该要求) 命令行格式: 提示符> Myapp.exe -f filename.txt > Result.txt (PS:C++ 程序,Java 程序输出方式类似) filename.txt 为前面下载的文件名. 解释: 选项 -f 表示后面跟文件名

结对项目——五子棋

题目简介  五子棋是一种两人对弈的纯策略型棋类游戏,通常双方分别使用黑白两色的棋子,下在棋盘直线与横线的交叉点上,先形成5子连线者获胜.  棋具与围棋通用,起源于中国上古时代的传统黑白棋种之一.主要流行于华人和汉字文化圈的国家以及欧美一些地区.  容易上手,老少皆宜,而且趣味横生,引人入胜:不仅能增强思维能力,提高智力 ,而且富含哲理,有助于修身养性.已在各个游戏平台有应用. 代码地址 https://github.com/zyc8023/Ivan/blob/master/Gobang.java

结对项目3-功能增强型带基本函数计算java计算器

-----------------------------------------------------实验报告-------------------------------------------------------- 一.实验目的 a.项目介绍: 对上个项目所设计的java计算器进行改进,设计一功能增强型计算器.从最基本的加.减.乘.除,到基本数学函数处理,再到数的进制转换处理.较上个实验,就项目而言,属于升级版.正符合软件开发的后期运维精神. b.功能实现: 1. 运用两个面板的叠加

结对项目 记事本

一.题目简介 所选项目名称:编写一个记事本程序 项目需求描述:现在网络上各种文档编辑器数不胜数,有EmEditor,UEStudio,GridinSoft Notepad,Notepad++,win32pad,SkimEdit,UniRed,xint.功能也是应有尽有,有能改变字体的,有能改变文字颜色的.但是,这些软件又存在各种各样的瑕疵或问题:有的文件体积相对于一般文字编辑来说太大:有的功能太繁杂,使初级使用者一时难以掌握.仅从日常应用方面来说,一个文本编辑器只需一些简单实用的功能就够了.本程