//创建一个字节输入流,并将文件路径填入
FileInputStream fis = new FileInputStream("D:\\hello.dxf");
//将字节输入流转换为字符输入流 ,使用UTF-8字符集防止文件读取中文为乱码
InputStreamReader reader = new InputStreamReader(fis,"UTF-8");
//将字符输入流转换为缓冲输入流从而提升性能
BufferedReader br = new BufferedReader(reader);
String line = null;
StringBuilder sb = new StringBuilder();
//记录当前读取的是哪一行
int i = 0;
//循环读取文件的每一行数据
while ((line = br.readLine()) != null) {
//将读取到的该行数据存放起来
String str = line;
i++;
//修改第50行的内容,加上\n使填入的数据换行
if("50".equals(i)){
sb.append("该行内容已被修改!\n")
}else{
//不为50行时正常存放每行的数据
sb.append(str+"\n");
}
}
//创建字节输出流,并将新文件名及其输出路径填入
FileOutputStream fos = new FileOutputStream("D:\\world.dxf");
//将字节输出流转换为字符输出流 ,使用UTF-8字符集防止文件写入中文为乱码
OutputStreamWriter osw = new OutputStreamWriter(fos,"UTF-8");
//数据写入
osw.write(sb.toString());
//flush函数,强制把数据输出,清空缓存区
osw.flush();
//最后再关闭读写流调用close函数就完成了
osw.close();
br.close();
IO流操作-修改文件指定行数的内容后重新生成新的文件
最新推荐文章于 2024-02-29 10:45:44 发布