java如何读取并修改txt文件

txt存放路径为D:/ABC/1.txt文件内容为:\bin\Host\Host.exe\bin\InfoPlayer\InfoPlayer.exe\bin\FileMa... txt存放路径为D:/ABC/1.txt
文件内容为:\bin\Host\Host.exe
\bin\InfoPlayer\InfoPlayer.exe
\bin\FileManager\FileManager.exe
\bin\Updater\Updater.exe
\bin\NTP_Client\ntp_Client.exe
请问如何用java读取并修改文件内容
(要有说明的代码最好 谢谢了!!!!!!!!!!)
展开
 我来答
samismiling
2015-06-24 · 知道合伙人软件行家
samismiling
知道合伙人软件行家
采纳数:1340 获赞数:5604

向TA提问 私信TA
展开全部
Java IO系统里读写文件使用Reader和Writer两个抽象类,Reader中read()()和close()方法都是抽象方法。Writer中 write(),flush()和close()方法为抽象方法。子类应该分别实现他们。
Java IO已经为我们提供了三个方便的Reader的实现类,FileReader,InputStreamReader和BufferedReader。其中最重要的类是InputStreamReader, 它是字节转换为字符的桥梁。你可以在构造器重指定编码的方式,如果不指定的话将采用底层操作系统的默认编码方式,例如GBK等。
FileReader读txt文件例子
FileReader fr = new FileReader("D:/Test.txt");
int ch = 0;
while((ch = fr.read())!=-1 ){
System.out.print( (char)ch );
}
其中read()方法返回的是读取得下个字符。

InputStreamReader读txt文件例子
InputStream is = new FileInputStream(new File("D:/Test.txt"));
InputStreamReader fr = new InputStreamReader(is);
int ch = 0;
while((ch = fr.read())!=-1 ){
System.out.print((char)ch);
}
这和FileReader并没有什么区别,事实上在FileReader中的方法都是从InputStreamReader中继承过来的。 read()方法是比较好费时间的,如果为了提高效率,我们可以使用BufferedReader对Reader进行包装,这样可以提高读取得速度,我们可以一行一行的读取文本,使用 readLine()方法。
BufferedReader br = new BufferedReader(new FileReader("Test.txt")));
String data = br.readLine();//一次读入一行,直到读入null为文件结束
while( data!=null){
System.out.println(data);
data = br.readLine(); //接着读下一行
}
当你明白了如何用Reader来读取文本文件的时候那么用Writer写文件同样非常简单。有一点需要注意,当你写文件的时候,为了提高效率,写入的数据会先放入缓冲区,然后写入文件。因此有时候你需要主动调用flush()方法。

有读就有写,写文本文件可以使用PrintWriter,FileWriter,BufferedWriter。
FileWriter fw = new FileWriter("D:/Test.txt");
String s = "hello world";
fw.write(s,0,s.length());
fw.flush();

OutputStreamWriter osw = new OutputStreamWriter(new FileOutputStream("D:/Test1.txt"));
osw.write(s,0,s.length());
osw.flush();

PrintWriter pw = new PrintWriter(new OutputStreamWriter(new FileOutputStream("D:/Test2.txt")),true);
pw.println(s);

fw.close();
osw.close();
pw.close();
如果想接着写入某个文件。 声明时FileWriter fw = new FileWriter("log.txt",true);加个true就可以了。
File file = new File("D:/Test.txt");
File dest = new File("D:/new.txt");
try {
BufferedReader reader = new BufferedReader(new FileReader(file));
BufferedWriter writer = new BufferedWriter(new FileWriter(dest));
String line = reader.readLine();
while(line!=null){
writer.write(line);
line = reader.readLine();
}
writer.flush();
reader.close();
writer.close();
} catch (FileNotFoundException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}
百度网友b4855c5
2011-12-09 · TA获得超过1071个赞
知道小有建树答主
回答量:823
采纳率:0%
帮助的人:955万
展开全部
这个算是基本的操作技能了.
给你个思路,用io的bufferedRead流读取文件每次读取一行.对读取的内容进行修改再放入到一个StringBuilder里.
文件读完后,再用io的FileWriter写出到原文件中就行了
代码不想写了,这个基本的技能你正好自己练练,有好处的
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
kakagui
2011-12-09 · TA获得超过670个赞
知道小有建树答主
回答量:239
采纳率:0%
帮助的人:279万
展开全部
public static void main(String[] args) throws IOException {
BufferedReader bufferedReader = null;
PrintWriter printWriter = null;

try{
bufferedReader = new BufferedReader(new FileReader("D:\\ABC\\1.txt"));

String l;

while ((l = bufferedReader.readLine()) != null) {
// opeartion l
System.out.println(l);
}
} finally {
if (bufferedReader != null) {
bufferedReader.close();
}

if (printWriter != null) {
printWriter.close();
}
}
}

希望对 你有所帮助。。。
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
aikangs
2011-12-09 · TA获得超过482个赞
知道小有建树答主
回答量:465
采纳率:100%
帮助的人:224万
展开全部
java.lang.io.*包
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
494269565
2011-12-09
知道答主
回答量:33
采纳率:0%
帮助的人:12.5万
展开全部
FileReader fr=new FileReader("D:/1.txt");
FileWriter fw=new FileWriter("D:/1.txt");
BufferedReader br=new BufferedReader(fr);
BufferedWriter bw=new BufferedWriter(fw);
String read=null;
String all=null;
while((read=br.readLine())!=null)
{
System.out.println(read+" 你想修改吗?Y/N:");
Scanner scan=new Scanner(System.in);
if(scan.next().equals("Y"))
{
all+=scan.nextLine();
}
all+=read;
}
bw.write(all);
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(5)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式