通过Stringbuffer实现io流读一行,行中位置的内容修改
来源:互联网 发布:知乎页面显示不正常 编辑:程序博客网 时间:2024/05/22 06:08
package cn.sos.until;
import java.io.BufferedReader;
import java.io.BufferedWriter;
import java.io.FileReader;
import java.io.FileWriter;
import java.io.IOException;
import java.math.BigDecimal;
import java.util.ArrayList;
import java.util.List;
/**
* 随机改变参数0和1.并运行计算程序
* @author lannan
*
*/
public class Random {
/**
* 修改0和1,收集修改后的数据
* @param filePath
*/
public static List heel(String filePath){
BufferedReader br = null;
String line = null; List<String>list = new ArrayList<>(); StringBuffer buf = new StringBuffer(); try { //根据文件路径创建缓冲输入流 br = new BufferedReader(new FileReader(filePath)); //循环读取文件的每一行,对需要进行修改的行进行修改,放入缓存对象中 while ((line = br.readLine()) != null) { //此处根据实际需要修改某些行的内容 buf.append(" ").append(" ").append((int)(Math.random()*2)).append(line.substring(3)); //使用list记录所有的数据 list.add(buf.toString()); //System.out.println(buf.toString()); //清空可变字符串,重新记录数据 buf.delete(0, buf.length()); } } catch (Exception e) { e.printStackTrace(); }finally{ try { br.close(); } catch (IOException e) { e.printStackTrace(); } } return list;}/** * 修改参数,并收集修改后的文件数据集合 * @param filePath * @return */public static List<String> dynamoheel(String filePath){ BufferedReader br = null; String line = null; List<String>list = new ArrayList<>(); StringBuffer buf = new StringBuffer(); StringBuffer buf2 = new StringBuffer(); try { //根据文件路径创建缓冲输入流 br = new BufferedReader(new FileReader(filePath)); //循环读取文件的每一行,对需要进行修改的行进行修改,放入缓存对象中 while ((line = br.readLine()) != null) { //将读取的行写入stringbuffer中 buf.append(line); float nm = (float)(Math.random()*9);//得到随机数,float是七位 buf2.append(nm); //因为修改的位置有10位,空格+随机数+逗号 --因此随机数只能为八位 if (buf2.length()>8) { buf2.delete(8, buf2.length()); } //将随机数插入 buf.insert(20, (" "+buf2.toString()+",")); //将原有的数删除 buf.delete(30,40); //使用list记录所有的数据 list.add(buf.toString()); //清空可变字符串,重新记录数据 buf.delete(0, buf.length()); buf2.delete(0, buf2.length()); 思路:由于所需要的随机数为小数点后六位,因此通过Stringbuffer的delete方法去除六位之后的元素. 然后在通过delete方法把插入前的数据删除,这样就实现了文件内容读取行,行中位置的文件修改. 说白了就是通过Stringbuffer的insert和delete方法多次调用实现! } } catch (Exception e) { e.printStackTrace(); }finally{ try { br.close(); } catch (IOException e) { e.printStackTrace(); } } return list;}/** * 将修改后的数据回写到文件中 * @param filePath:文件路径 * @param content:修改后的数据集合 */public static void writer(String filePath,List<String> content){ BufferedWriter bw = null; try { //根据文件路径创建缓冲输出流 bw = new BufferedWriter(new FileWriter(filePath)); //将内容写入到文件中 for (int i = 0; i < content.size(); i++) { bw.write(content.get(i)); //换行 bw.newLine(); } } catch (Exception e) { e.printStackTrace(); }finally{ try { bw.close(); } catch (IOException e) { e.printStackTrace(); } }}/** * 运行exe文件,进行计算 * 并一次计算完毕后自动关闭exe界面,结束线程(用于循环) * @param rnRuntime */public static void test3(Runtime rnRuntime){ try { Process p = rnRuntime.exec("D:\\wenjian\\电力psasp\\潮流作业1\\Temp\\wmlf.exe"); Thread.sleep(3000); p.destroy(); } catch (Exception e) { System.out.println("打开应用程序失败!"); }}
}
阅读全文
0 0
- 通过Stringbuffer实现io流读一行,行中位置的内容修改
- 通过jQuery修改一个table中的最后一行的最后一个td的内容
- java中通过IO流实现文件的复制
- gridview中点击行的任何位置选定一行
- java中对IO文件的操作(读,写,增加一行,删除一行,删除文件)
- 通过IO流讲一个文件里面的内容读到另外一个文件里面(文件复制功能的实现)
- 通过java的io流将本地文件读取到控制台,并将文件内容再次写入另一个文件中
- iOS 通过代码修改AutoLayout的约束连线,来实现调整view的位置
- iOS 通过代码修改AutoLayout的约束连线,来实现调整view的位置
- io流读写文件(文件内容修改)
- 通过bbed修改表的数据内容
- (转)java中对IO文件的操作(读,写,增加一行,删除一行,删除文件)
- 用jquery实现隐藏列表表单的显示关闭切换以及Ajax方式修改提交对应的那一行的修改内容。
- 流 JAVA IO 基本小结 通过一行常见的代码讨论:new BufferedReader(new InputStreamReader(System.in))
- 流 JAVA IO 基本小结 通过一行常见的代码讨论:new BufferedReader(new InputStreamReader(System.in))
- GMF中修改的内容
- 通过IO文件流操作实现对文件的复制
- 通过java的io流,获取从控制台上输入的内容
- 【异常解决】jxl.write.biff.JxlWriteException: Attempt to modify a referenced format
- 百度地图小区边界(轮廓)处理
- 编译安装环境部署Nextcloud私有云
- java 值类型和引用类型
- 感知机
- 通过Stringbuffer实现io流读一行,行中位置的内容修改
- 输入一个数组,用二分法查找Java实现
- maven mybatis反向工程插件
- 八大排序算法-Python
- 单点登录之cas4.2.7服务端数据库配置(读数据库验证用户并对密码进行加密)
- SVN服务器搭建--Subversio与TortoiseSVN的配置安装
- druid学习-安装
- 学习笔记之面向对象编程13(StringBuffer类)
- python web框架Django学习(四)模板查找机制