如何修改一行文本 比如D盘有一个ddd.txt文件文件内容为:白马是马马是白马假如我想把第二行的内容修改为“马不一定是白马” 要怎么做?在线等答案 求大神回复 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 基本上没什么让你认为会更完美的方案:用FileReader打开文件,全部读取进来,关闭。然后把第二行替换成你想要的字符串。最后用FileWriter打开文件,全部写入。 用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(); }} 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来写这得多方便啊~~ 这个监听器怎么没效果?? 这程序为什么不能读pdf啊? 程序如何调用另一程序?java 怎样才能使窗口运行一段时间后,自动从最小化变为最大化? 写出代码者送50分,急!!!!!! 客户端的socket如何关闭才正确哪? 请问大家都在用JAVA做些什么? 难道必须要初始化?? 一个很菜的java 问题??请教?? 高手快来看看,关于Jb6+wls6.1集成后的一个问题! eclipse 项目小红叉 构建路径问题 求帮助啊! 关于设置classpath变量的问题 部署运行出错
然后把第二行替换成你想要的字符串。
最后用FileWriter打开文件,全部写入。
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();
}}
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了。根据实际情况修改编码方式。