❶ java如何读取并修改txt文件
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();
}
❷ java怎么修改文本文件每行里的某一内容
1.把整个TXT文件读取出来(FileReader)存到一个String对象里!
2.正则替换String对象,替换表达式。比如
String
a
=
"13730000666";
String
b
=
a.replaceAll("(\\d{4})(\\d{4})(\\d{3})","$1****$3");
System.out.println(b);
输出:
1373****666
3.再将String对象写回TXT文件。
❸ java怎样高效修改文件部分内容
个人认为,Java修改文件,肯定是要用到IO流,如果文件比较大,肯定会影响到IO流读写的效率,如果是文件信息量非常庞大的,可按小时,分时间段分开保存到不同的文件,读写是务必使用StringBuffer 类,它有高速缓存,能很高的提高读写效率。希望能帮到你
❹ java 文本文件部分内容修改
整体思路如下:
1、用FileInputStream读取文件内容;
2、修改内容,string操作;
3、用FileOutputStream写文件内容;
参考例子如一下:
importjava.io.*;
publicclassTestBufferStream{
publicstaticvoidmain(String[]args){
try{
BufferedReaderin=newBufferedReader(newFileReader("in.txt"));
BufferedWriterout=newBufferedWriter(newFileWriter("out.txt"));
Strings=null;
while((s=in.readLine())!=null){
out.write(s);
out.newLine();
}
out.flush();
in.close();
out.close();
}catch(IOExceptione){
e.printStackTrace();
}
}
}
❺ Java 如何修改文件的某一行内容
importjava.io.BufferedReader;
importjava.io.File;
importjava.io.FileNotFoundException;
importjava.io.FileReader;
importjava.io.FileWriter;
importjava.io.IOException;
importjava.io.PrintWriter;
publicclassDay02_B{
staticStringpath="K:/Test/Name.txt";//路径
publicstaticvoidmain(String[]args){
FilefileText=newFile(path);//文件
if(fileText.canExecute())//如果文件存在就继续
setText(fileText,"刚","xx");//“刚”指定改为:“XX”
}
privatestaticvoidsetText(FilefileText,Stringtarget,Stringsrc){//修改
BufferedReaderbr=null;
PrintWriterpw=null;
StringBufferbuff=newStringBuffer();//临时容器!
Stringline=System.getProperty("line.separator");//平台换行!
try{
br=newBufferedReader(newFileReader(fileText));
for(Stringstr=br.readLine();str!=null;str=br.readLine()){
if(str.contains(target))
str=str.replaceAll(target,src);
buff.append(str+line);
}
pw=newPrintWriter(newFileWriter(fileText),true);
pw.println(buff);
}catch(FileNotFoundExceptione){
e.printStackTrace();
}catch(IOExceptione){
e.printStackTrace();
}finally{
if(br!=null)
try{
br.close();
}catch(IOExceptione){
e.printStackTrace();
}
if(pw!=null)
pw.close();
}
}
}
❻ java怎样高效修改文件部分内容
整体思路如下:
1、用 FileInputStream 读取文件内容;
2、修改内容,string操作;
3、用 FileOutputStream 写文件内容;
参考例子如一下:
import java.io.*;
public class TestBufferStream{
public static void main(String[] args){
try{
BufferedReader in = new BufferedReader(new FileReader("in.txt"));
BufferedWriter out = new BufferedWriter(new FileWriter("out.txt"));
String s = null;
while((s = in.readLine()) != null){
out.write(s);
out.newLine();
}
out.flush();
in.close();
out.close();
}catch(IOException e){
e.printStackTrace();
}
}
}
❼ java中如何修改文本文件内容
可以定义一个类
class Player implements Serializable{
private String name;
private int score;
...
}
游戏结束时,读取历史最高分数信息创建Player对象(如果存在),与当前的游戏的Player比较游戏得分。如果当前成玩家的游戏分数高,则把当前玩家对象写入文件,覆盖原来文件的内容。否则,do nothing!
❽ java 更改文件内容
import java.io.BufferedReader;
import java.io.File;
import java.io.FileOutputStream;
import java.io.FileReader;
import java.io.OutputStreamWriter;
public class FileInOutput {
/**
* @param args
*/
public static void main(String[] args) {
try {
BufferedReader br = new BufferedReader(new FileReader("d:\\tt.cvs"));
File f = new java.io.File("d:\\mm.cvs");
FileOutputStream fos = new FileOutputStream(f);
OutputStreamWriter osw = new OutputStreamWriter(fos);
if(osw == null) System.out.println("osw is null");
br.readLine();
int c = 0;
while(true)
{
c = br.read();
if(c == -1) break;
if(c =='\"') continue;
osw.write(c);
}
br.close();
osw.close();
fos.close();
System.out.println("操作完成");
} catch (Exception e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
}
❾ java 修改java文件的内容
不懂你的意思呃,是要修改.java文件吗,直接 用io读取和写文件,用字符串比较定位要修改的内容不就完了吗,就当和txt文件一样操作....