像我们经常会遇到这样的事情,例如一个txt文件中有姓名和电话,这个时候很经常就需要将名字和电话号码进行提取操作,这个时候就可以利用Java中io来实现了。

这里我就不具体介绍io中的字节流和字符流的异同点了,有兴趣的同学可以自己百度百度。

今天主要是介绍一下如何实现对文件内容的获取还有就是对获取的文件内容进行修改操作。下面看具体案例介绍。

这个是案例最终要实现的效果,在姓名和电话号码直接添加分割符号。

这里有一点需要主要的是,这个案例并不是直接在原先的txt文档上面进行修改的,而是新建一个新的txt文件重新写入新的内容。

好了废话不多说,看看这个案例具体是怎么具体实现的。

这个案例分为三个模块:1.文件读取模块,2.姓名电话分离模块,3.文件写入模块

1.文件读取模块:/**

* 功能:Java读取txt文件的内容

* 步骤:1:先获得文件句柄

* 2:获得文件句柄当做是输入一个字节码流,需要对这个输入流进行读取

* 3:读取到输入流后,需要读取生成字节流

* 4:一行一行的输出。readline()。

* 备注:需要考虑的是异常情况

* @param filePath

*/

public static String readTxtFile(String filePath) {

StringBuilder content = new StringBuilder("");

try {

String encoding = "UTF-8";

File file = new File(filePath);

if (file.isFile() && file.exists()) {

InputStreamReader read = new InputStreamReader(new FileInputStream(file), encoding);

BufferedReader bufferedReader = new BufferedReader(read);

String lineTxt = null;

while ((lineTxt = bufferedReader.readLine()) != null) {

String[] result = getNamePhone(lineTxt);

System.out.println(lineTxt);

content.append(result[0] + "----" + result[1]);

content.append("\r\n");// txt换行

}

read.close();

} else {

System.out.println("找不到指定的文件");

}

} catch (Exception e) {

System.out.println("读取文件内容出错");

e.printStackTrace();

}

return content.toString();

}

2.姓名电话分离模块:public static String[] getNamePhone(String str) {

String[] result = new String[2];

int index = 0;

for (int i = 0; i < str.length(); i++) {

if (str.charAt(i) >= '0' && str.charAt(i) <= '9') {

index = i;

break;

}

}

result[0] = str.substring(0, index);

result[1] = str.substring(index);

return result;

}

3.文件写入模块:public static void printFile(String content) {

BufferedWriter bw = null;

try {

File file = new File("D:/filename.txt");

if (!file.exists()) {

file.createNewFile();

}

FileWriter fw = new FileWriter(file.getAbsoluteFile());

bw = new BufferedWriter(fw);

bw.write(content);

bw.close();

} catch (IOException e) {

e.printStackTrace();

}

}

通过这三个模块就可以实现对文件的读取操作了,然后对信息进行处理,最后将处理好的信息添加到新的文件中去。

这里需要注意的是:项目的编码格式要写成utf-8,否则会出现乱码的情况。

到这里文件的读写操作就完结了,是不是特别简单方便。

感谢大家的阅读,希望大家收益多多。

本文转自: https://blog.csdn.net/linzhiqiang0316/article/details/71744340

推荐教程:《java教程》

java文件读写 教程_Java对文件的读写操作(图文详解)相关推荐

  1. java htmlparser 使用教程_Java解析HTML之HTMLParser使用与详解

    HTMLParser将解析过的信息保存为一个树的结构.Node是信息保存的数据类型基础.请看Node的定义:public interface Node extends Cloneable;Node中包 ...

  2. Unity 分享 功能 用Unity Native Share Plugin 实现链接、图片、视频等文件的分享+ 安卓 Ios 都可以,代码图文详解

    Unity 分享 功能 用Unity Native Share Plugin 实现链接.图片.视频等文件的分享+ 安卓 Ios 都可以,代码图文详解 前言 环境 效果 一.Unity Native S ...

  3. mysql拷贝文件安装_Mysql5.7.18的安装与主从复制图文详解

    CentOS6.7安装mysql5.7.18 1.  解压到/usr/local目录 # tar -zxvf mysql-5.7.18-linux-glibc2.5-i686.tar.gz -C /u ...

  4. java docker 持续集成_最佳实战Docker持续集成图文详解

    前言 关于Docker的文章铺天盖地,但精品文章往往翻译居多.都说Docker天生适合持续集成/持续部署,但同样,可落地.实际可操作性的文章也很罕见. 基于这些情况,虽然我们专栏定位为运维管理性文字, ...

  5. java设计模式观察者模式吗_Java设计模式之观察者模式原理与用法详解

    Java设计模式之观察者模式原理与用法详解 本文实例讲述了Java设计模式之观察者模式原理与用法.分享给大家供大家参考,具体如下: 什么是观察者模式 可以这么理解: 观察者模式定义了一种一对多的依赖关 ...

  6. java.exe 安装程序_java实现可安装的exe程序实例详解

    java实现可安装的exe程序实例详解 通过编写Java代码,实现可安装的exe文件的一般思路: 1.在eclipse中创建java项目,然后编写Java代码,将编写好的Java项目导出一个.jar格 ...

  7. java 设置pdf 编码格式_Java如何设置PDF文档背景色详解

    前言 一般生成的PDF文档默认的文档底色为白色,我们可以通过一定方法来更改文档的背景色,以达到文档美化以及保护双眼的作用. 以下内容提供了Java编程来设置PDF背景色的方法.包括: 设置纯色背景 设 ...

  8. java list 重复数据_java 查找list中重复数据实例详解

    java 查找list中重复数据实例详解 需求: 查找一个List集合中所有重复的数据,重复的数据可能不止一堆,比如:aa, bb, aa, bb, cc , dd, aa这样的数据.如果有重复数据, ...

  9. java生成字符串数组_Java 生成随机字符串数组的实例详解

    Java 生成随机字符串数组的实例详解 利用Collections.sort()方法对泛型为String的List 进行排序.具体要求: 1.创建完List之后,往其中添加十条随机字符串 2.每条字符 ...

  10. java接口废弃注释_Java注释Override、Deprecated、SuppressWarnings详解

    四.如何对注释进行注释 这一节的题目读起来虽然有些绕口,但它所蕴涵的知识却对设计更强大的java程序有很大帮助. 在上一节讨论了自定义注释,由此我们可知注释在J2SE5.0中也和类.接口一样.是程序中 ...

最新文章

  1. ZOJ1002 Fire Net(非递归版)
  2. 解决ping 127.0.0.1 一般故障 问题
  3. linux 压缩 解压zip 命令
  4. JSP——EL语法总结
  5. 超级计算机预测南方下雪,南方九省即将大雪纷飞?超级计算机:可能性增加,但还没有确定...
  6. 集成测试CDI 1.0和Spring 3.1中的作用域bean
  7. 谷歌:. apk 成为历史!
  8. vue项目安装引入css-loader - cmd篇
  9. 利用Git查看项目代码总行数
  10. python给列表的每一项都加上特定的字符串
  11. 硬件基础知识---(12) PCB的生产流程
  12. C语言学习笔记---数组和指针的区别
  13. DP4 最小花费爬楼梯
  14. 自定义简单控件之标题控件
  15. c语言队列的作用,C语言队列
  16. 关于“ 解决对COM组件的调用返回了错误HRESULT E_FAIL” 的方法
  17. 美团外卖离线数仓建设实践
  18. 黄金矿工小游戏制作步骤
  19. 图的有权最短路径及Dijkstra算法
  20. 全国计算机等级四级计算机网络第6套答案,全国计算机等级考试四级计算机网络第6套试题(2)...

热门文章

  1. Wifi万能钥匙已经被淘汰了!Github这个开源工具太好用了!
  2. Oracle用户可要顶住了:准备好大规模补丁工作!以修补多达 433 个的新安全漏洞...
  3. 聊一聊字节跳动的面试
  4. 如何进入腾讯、网易、阿里这样的互联网公司,看到第二条我就秒懂了~
  5. 花了 2 元,用 1 根网线发起攻击,控制上千人
  6. Linux 系统运行速度太慢的关键原因全都在这了
  7. 进来看下你的工资水平
  8. eclipse对mysql进行增删改查_用eclipse编写的 能对MySQL数据库中表实现增删改查功能...
  9. mysql 延时update_转 MySQL延迟更新索引(delay_key_write)
  10. python入门到熟练要多久_python_入门到熟练_day02