java 将文件中的姓名“李善”改为“王山”
来源:互联网 发布:淘宝买机油靠谱吗 编辑:程序博客网 时间:2024/04/29 20:21
一、需求
编写一个Java源程序,其中的文件读写部分使用RandomAccessFile类来完成,程序实现的功能如下:
编写一个包含主方法main的公共类(访问权限为public的类),主方法main中完成的任务是:
(1)将实验6产生的文件“lianxi1.txt”中的姓名“李善”改为“王山”。
(2)在文件“lianxi1.txt”原有信息之后继续添加学生信息。
二、代码
public class exp7{ public static void main(String[] args) throws IOException { //获取标准输入流 InputStream inputStream = System.in; //定义字符转换流 InputStreamReader inputStreamReader = new InputStreamReader(inputStream); //定义一个缓冲字符流接收文件名 BufferedReader bufferedReader = new BufferedReader(inputStreamReader); //提示用户输入文件名 System.out.println("请输入要处理的文件名:"); //读取用户输入的用户名 String filename = bufferedReader.readLine(); //创建文件对象 File file = new File(filename); //创建随机读写流对象 RandomAccessFile accessFile = new RandomAccessFile(file,"rw"); System.out.println("本程序的任务是:\n1.将“"+file.getName()+"”中的姓名“李善”改为“王山”。\n2.在“"+file.getName()+"”中原有信息之后继续添加学生信息。"); //获取文件长度 long length = accessFile.length(); //定义当前读取的位置 long position = 0; //记录读取前的位置 long index = 0; //将读取位置定位到文件头部 accessFile.seek(position); while(position<length) { index = accessFile.getFilePointer(); //读取内容 String content = accessFile.readLine(); //重新编码 byte[] buff = content.getBytes("iso-8859-1");//因为iso-8859-1码表是唯一一个编满的,所以用他编码不会丢数据 //使用当前机器的默认编码方式将字节数组转化成字符串 content = new String(buff); if(content.startsWith("李善")) { //content.replaceFirst("李善", "王山"); //不知道为啥用replace不起作用 //修改姓名 content = "王山"+content.substring("李善".length(), content.length()); //重新定位指针 accessFile.seek(index); //写入数据 accessFile.write(content.getBytes()); } position = accessFile.getFilePointer(); } accessFile.close(); System.out.println("文件“"+file.getName()+"”中的姓名“李善”已经改为“王山”,请查阅!"); System.out.println("请继续向文件“"+file.getName()+"”中添加文件新的文件信息,以finish结束。"); //创建随机读写流对象 RandomAccessFile accessFile2 = new RandomAccessFile(file,"rw"); //追加内容时指针定位到文件末尾 accessFile2.seek(accessFile2.length()); String content = new String(); while(!"finish".equals(content = bufferedReader.readLine())) { accessFile2.write(("\r\n"+content).getBytes()); accessFile2.seek(accessFile2.length()); } accessFile2.close(); }}
三、运行截图
处理前:
运行程序:
处理后:
阅读全文
0 0
- java 将文件中的姓名“李善”改为“王山”
- java将实体类文件改为链式编程模式
- 如何将信息资源文件(.properties)中的中文字符改为ISO-8859-1编码
- java学习笔记7对于将从控制台进行输入改为文件
- MyEclipse将java项目改为web项目
- 编写程序,将指定目录下所有.java 文件拷贝到另一个目的中,并将扩展名改为.txt。
- Java面试:将d:/java目录下的所有.java文件复制到d:/jad目录下,并将原来文件的扩展名从.java改为.jad
- 将d:\java目录下的所有.java文件复制到d:\jad目录下,并将原来文件的扩展名从.java改为.jad
- 将d:\java目录下的所有.java文件复制到d:\jad目录下,并将原来文件的扩展名从.java改为.jad
- 编写一个程序,将d:\java目录下的所有.java文件复制到d:\jad目录下,并将原来文件的扩展名从.java改为. jad
- 编写一个程序,将 d:\java目录下的所有.java 文件复制到d:\jad目录下,并将原来文件的扩展名从.java 改为.jad。
- 编写一个程序,将 d: \ java 目录下的所有.java 文件复制到d: \ jad 目录下,并 将原来文件的扩展名从.java 改为.jad
- 编写一个程序,将d:\java目录下的所有.java文件复制到d:\jad目录下,并将原来文件的扩展名从.java改为.jad
- 将d:\java目录下的所有.java文件复制到d:\jad目录下, 并将原来文件的扩展名从.java改为.jad
- 编写一个程序,将d:\java目录下的所有.java文件复制到d:\jad目录下,并将原来文件的扩展名从.java改为.jad
- 将html文件直接改为jsp文件出现乱码
- 将d:\\java目录下所有的java文件复制到d:\\jad目录下并将原来的文件扩展名改为jad
- 编写一个程序,将djava目录下的所有.java文件复制到djad目录下,并将原来文件的扩展名从.java改为.jad
- leetcode 132. Palindrome Partitioning II
- js 自定义标签库 (传递多个参数到后台controller)
- tmpfs 和 /dev/shm
- python脚本学习(1)
- CSS相邻同胞选择器
- java 将文件中的姓名“李善”改为“王山”
- oracle没有create or replace table
- [模板]树的重心
- Rxjava这一篇就够了,墙裂推荐
- 痛苦的Caffe配置之路(win10 教育版+vs2015+cmaker+cpu_only+python接口)
- AVG PC Tuneup 2017(顶级系统优化大师)官方中文破解版64位V16.76.3.18604下载 | 内置avg pc tuneup 2017激活码
- C/c++编译时的def文件
- CSS3同胞选择器
- java常见异常总结