黑马程序员技术交流社区
标题:
IO流?????
[打印本页]
作者:
韩秀山
时间:
2013-5-20 22:41
标题:
IO流?????
public static void main(String[] args) throws IOException {
// 使用字符流显示一个文本文件
InputStreamReader in = new InputStreamReader(new FileInputStream(
"folder/个人信息(复制).txt"));
int a;
while ((a = in.read()) != -1) {
System.out.print((char)a);
}
OutputStreamWriter ut=new OutputStreamWriter(new FileOutputStream("folder/个人信息.txt"));
ut.write("性别:男");
ut.close();
in.close();
}
这段代码是使用输入流在一个文件中,写入信息!!我的问题是可不可以在指定的行 把 "性别:男" 添加进去?该如何实现??不可以请说一下原因????
作者:
谢孔营
时间:
2013-5-20 22:48
以前没这样弄过,也没见过,搞不了这个。
作者:
江大海
时间:
2013-5-20 23:38
本帖最后由 江大海 于 2013-5-20 23:42 编辑
应该可以的,用那个LineNumberReader
代码展示如下
/*
在Demo.txt文件的第三行加入“性别”男行中加入性别:男
*/
import java.io.*;
class AddSex
{
public static void main(String[] args) throws IOException
{
FileReader fr = new FileReader("E:\\Demo.txt");//创建字符读取流对象,和要读取的文件相关联
FileWriter fw = new FileWriter("E:\\Demo2.txt");//创建字符写入流对象,说明要存储的位置
BufferedWriter bufw = new BufferedWriter(fw);//加入缓冲技术
LineNumberReader lnr = new LineNumberReader(fr);//用这个是可以直接显示行数,可以在需要的行里进行操作
String len = null;
while ((len=lnr.readLine())!=null)
{
if (lnr.getLineNumber()==3)//加入读到的行数是第三行,就在前面加入需要的内容,性别:男,
{
bufw.write("性别:男");//额,。。。代码是丑了点,也没有优化,忘记String中是否有加到前面的方法了,
bufw.write(len);
bufw.newLine();
}
else
bufw.write(len);
bufw.newLine();
}
bufw.close();
lnr.close();//关闭资源时
}
}
-----------来自黑马云青年 大大海
复制代码
作者:
xiewen
时间:
2013-5-20 23:49
本帖最后由 xiewen 于 2013-5-20 23:53 编辑
江大海 发表于 2013-5-20 23:38
应该可以的,用那个LineNumberReader
代码展示如下
你写的挺好的
黑马云青年为您解答
作者:
韩秀山
时间:
2013-5-21 00:33
江大海 发表于 2013-5-20 23:38
应该可以的,用那个LineNumberReader
代码展示如下
好吧 谢谢你 复制你的代码 出现点小小的错误 我不知道在哪里出错了,也可能是我复制好的原因吧。我自己在研究研究吧
作者:
逝者轨迹
时间:
2013-5-21 06:32
把上面的代码if里的代码顺序稍微调整一下就没问题了:
bufw.write("性别:男");
bufw.newLine();
bufw.write(len+1);
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2