结对项目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的样式。

技术分享

运行成功后:

技术分享技术分享

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

心得体会

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

郑重声明:本站内容如果来自互联网及其他传播媒体,其版权均属原媒体及文章作者所有。转载目的在于传递更多信息及用于网络分享,并不代表本站赞同其观点和对其真实性负责,也不构成任何其他建议。