当前位置:编程学习 > JAVA >>

如何修改一行文本

比如D盘有一个ddd.txt文件

文件内容为:
白马是马
马是白马

假如我想把第二行的内容修改为“马不一定是白马” 要怎么做?

在线等答案 求大神回复 --------------------编程问答-------------------- 怎么没人啊 --------------------编程问答-------------------- 基本上没什么让你认为会更完美的方案:

用FileReader打开文件,全部读取进来,关闭。
然后把第二行替换成你想要的字符串。
最后用FileWriter打开文件,全部写入。 --------------------编程问答-------------------- 二楼说的不错,文件不大的话,这样效率应该没问题的
文件大的话,我也不知道有什么好方法,请大牛吧。 --------------------编程问答-------------------- 能不能把代码写出来参考一下 --------------------编程问答--------------------
引用 4 楼 kakaganxiao 的回复:
能不能把代码写出来参考一下

见谅。看有没有其它热心人帮你吧。 --------------------编程问答--------------------
引用 5 楼 ldh911 的回复:
引用 4 楼 kakaganxiao 的回复:能不能把代码写出来参考一下
见谅。看有没有其它热心人帮你吧。

--------------------编程问答-------------------- 用FileInputStream read()方法读取文件里的内容,然后在用FileOutputStream中的public void write(byte[] b)  throws IOException方法将要改的内容写到第二行,思路就是这样 --------------------编程问答--------------------
引用 7 楼 ling_xuan 的回复:
用FileInputStream read()方法读取文件里的内容,然后在用FileOutputStream中的public void write(byte[] b)  throws IOException方法将要改的内容写到第二行,思路就是这样

我要修改的是一正行中文啊 --------------------编程问答--------------------
import java.io.*;
import java.util.*;

public class ad13
{
public static void main(String[] args)
{
FileReader fi;
List<String> list = new ArrayList<String>();
try
{
fi = new FileReader("D:/ddd.txt");
BufferedReader bis = new BufferedReader(fi);
String str = "";
while((str = bis.readLine()) != null)
{
list.add(str);
}
fi.close();
bis.close();
list.set(1, "马不一定是白马");

} catch(IOException e){
e.printStackTrace();
}

FileOutputStream fos;
try
{
fos = new FileOutputStream("D:/ddd.txt");
DataOutputStream dos = new DataOutputStream(fos);
for(int i=0; i<list.size(); i++)
{
dos.writeUTF(list.get(i));
dos.flush();
}
dos.close();
}catch(IOException e){
e.printStackTrace();
}
}
}

勉强写了个。。楼主对照改改吧, --------------------编程问答--------------------

public void write(String content,int position){}
try {
    RandomAccessFile randomFile = new RandomAccessFile(fileName, "rw");
    randomFile.seek(position);//知道白马在哪个位置,传进来就可以了
    randomFile.writeBytes(content);//content是要更改的内容
    randomFile.close();
    } catch (IOException e) {
        e.printStackTrace();
}
--------------------编程问答--------------------
楼主,这个百度随便找段文件操作的代码看一下吧,看不懂照着改都行啊。很简单的!
还有建议还是判断一下那段代码是不是“马是白马”! --------------------编程问答--------------------

import java.io.BufferedReader;
import java.io.BufferedWriter;
import java.io.FileReader;
import java.io.FileWriter;
import java.io.IOException;
import java.util.ArrayList;
import java.util.List;

public class Test {

public static void main(String[] args) throws IOException {
List<String> list = new ArrayList<String>();
BufferedReader br = new BufferedReader(new FileReader("ddd.txt"));
String line = null;
while((line=br.readLine())!=null){
if("马是白马".equals(line))
line="马不一定是白马";
list.add(line);
}
br.close();
BufferedWriter bw = new BufferedWriter(new FileWriter("ddd.txt"));
for(String str : list){
bw.write(str);
bw.newLine();
bw.flush();
}
bw.close();
}

}
--------------------编程问答--------------------
引用 9 楼 eviljordan 的回复:
Java code?123456789101112131415161718192021222324252627282930313233343536373839404142import java.io.*;import java.util.*; public class ad13{    public static void main(String[] args)    {……

不行啊 运行成功 但是结果不对 --------------------编程问答--------------------
引用 12 楼 huangzebiao007 的回复:
Java code?123456789101112131415161718192021222324252627282930import java.io.BufferedReader;import java.io.BufferedWriter;import java.io.FileReader;import java.io.FileWriter;import java.io……

这个也不行的 --------------------编程问答--------------------

--------------------编程问答--------------------
import java.nio.file.Files;
import java.nio.file.Path;
import java.nio.file.Paths;
import java.nio.file.StandardOpenOption;
import java.nio.charset.Charset;
import java.util.List;

public class DDD {
    public static void main(final java.lang.String[] args) {
        try {
            Path path = Paths.get("D:/Temp/Examples", "ddd.txt");
            Charset charset = Charset.forName("UTF-8");
            List<String> lines = Files.readAllLines(path, charset);
            lines.set(1, "马不一定是白马");
            Files.write(path, lines, charset, StandardOpenOption.WRITE);
        } catch (Exception e) {
            e.printStackTrace();
        }
    }
}

ddd.txt 保存成UTF-8了。根据实际情况修改编码方式。 --------------------编程问答-------------------- 学习中,请大家照顾 --------------------编程问答-------------------- 感慨一下,要是用Perl来写这得多方便啊~~  
补充:Java ,  Java SE
CopyRight © 2012 站长网 编程知识问答 www.zzzyk.com All Rights Reserved
部份技术文章来自网络,