① java如何追加写入txt文件
java中,对文件进行追加内容操作的三种方法!
importjava.io.BufferedWriter;
importjava.io.FileOutputStream;
importjava.io.FileWriter;
importjava.io.IOException;
importjava.io.OutputStreamWriter;
importjava.io.PrintWriter;
importjava.io.RandomAccessFile;
//如果文件存在,则追加内容;如果文件不存在,则创建文件,追加内容的三种方法
{
@SuppressWarnings("static-access")
publicstaticvoidmain(String[]args){
AppendContentToFilea=newAppendContentToFile();
a.method1();
a.method2("E:\dd.txt","222222222222222");
a.method3("E:\dd.txt","33333333333");
}
方法1:
publicvoidmethod1(){
FileWriterfw=null;
try{
//如果文件存在,则追加内容;如果文件不存在,则创建文件
Filef=newFile("E:\dd.txt");
fw=newFileWriter(f,true);
}catch(IOExceptione){
e.printStackTrace();
}
PrintWriterpw=newPrintWriter(fw);
pw.println("追加内容");
pw.flush();
try{
fw.flush();
pw.close();
fw.close();
}catch(IOExceptione){
e.printStackTrace();
}
}
方法2:
publicstaticvoidmethod2(Stringfile,Stringconent){
BufferedWriterout=null;
try{
out=newBufferedWriter(newOutputStreamWriter(
newFileOutputStream(file,true)));
out.write(conent+" ");
}catch(Exceptione){
e.printStackTrace();
}finally{
try{
out.close();
}catch(IOExceptione){
e.printStackTrace();
}
}
}
方法3:
publicstaticvoidmethod3(StringfileName,Stringcontent){
try{
//打开一个随机访问文件流,按读写方式
RandomAccessFilerandomFile=newRandomAccessFile(fileName,"rw");
//文件长度,字节数
longfileLength=randomFile.length();
//将写文件指针移到文件尾。
randomFile.seek(fileLength);
randomFile.writeBytes(content+" ");
randomFile.close();
}catch(IOExceptione){
e.printStackTrace();
}
}
}
② java文件读写,在一个已经有内容的文件中,追加第一行,如何做到
我的想法是可以用RandomAccessFile,这个类的seek方法,想在文件的哪个位置插入内容都行。所以你的第一行就不在话下了。但是,这个会覆盖你文件中插入位置后面的内容。相当于我们在输入的时候,按了键盘的insert键盘。所以,像你这种情况只能用临时文件来存储原有的内容,然后把要插入的数据写入文件,再把临时文件的内容追加到文件中。
void insert(String filename,int pos,String insertContent){//pos是插入的位置
File tmp = File.createTempFile("tmp",null);
tmp.deleteOnExit();
try{
RandomAccessFile raf = new RandomAccessFile(filename,"rw");
FileOutputStream tmpOut = new FileOutputStream(tmp);
FileInputStream tmpIn = new FileInputStream(tmp);
raf.seek(pos);//首先的话是0
byte[] buf = new byte[64];
int hasRead = 0;
while((hasRead = raf.read(buf))>0){
//把原有内容读入临时文件
tmpOut.write(buf,0,hasRead);
}
raf.seek(pos);
raf.write(insertContent.getBytes());
//追加临时文件的内容
while((hasRead = tmpIn.read(buf))>0){
raf.write(buf,0,hasRead);
}
}
}
③ java如何追加写入txt文件
java追加写入txt文件代码及注释参考如下:
publicvoidm(){
FileWriterff=null;
try{
//查看C盘是否有a.txt文件来判定是否创建
Filef=newFile("c:\a.txt");
ff=newFileWriter(f,true);//将字节写入文件末尾处,相当于追加信息。
}catch(IOExceptione){
e.printStackTrace();
}
PrintWriterp=newPrintWriter(ff);
p.println("这里就可以写入要追加的内容了");//此处为追加内容
p.flush();
ff.try{
f.flush();
p.close();
ff.close();
}catch(IOExceptione){
e.printStackTrace();
}
}
④ java把控制台输入的文本追加到文本文件中
/**
* 从控制台接收用户输入的数据,并存储在磁盘上
* @param filePath
*/
static void userPrint(String filePath){
BufferedReader br = null;
BufferedWriter bw = null;
try{
//通过System.in返回一个InputStream对象用于构造一个InputStreamReader对象
//再用来构造一个Buffered对象
br = new BufferedReader(new InputStreamReader(System.in));
bw = new BufferedWriter(new FileWriter(filePath,true)); //true表示是否追加
String str = br.readLine(); //接收用户输入
while(!str.equals("exit")){ //如果用户输入exit则退出循环
bw.write(str); //将用户输入的字符串写入文件
bw.newLine(); //换行
bw.flush(); //刷新缓冲区,将缓冲区的字符写入磁盘!
str = br.readLine(); //继续接收输入
}
}
catch(FileNotFoundException e){
System.out.println(e.getMessage());
}
catch(IOException e){
System.out.println(e.getMessage());
}
finally{
try {
bw.close(); //关闭对象前会调用bw.flush();
br.close();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
}
⑤ java 如何向txt文件中的某一行继续写入
Java的RandomAccessFile提供对文件的读写功能,与普通的输入输出流不一样的是RamdomAccessFile可以任意的访问文件的任何地方。这就是“Random”的意义所在。
相关API:
RandomAccessFile(String
name, String
mode)构造器,模式分为r(只读),rw(读写)等
RandomAccessFile.readLine()方法实现对一整行的读取,并重新定位操作位置
RandomAccessFile.write(byte[] b)用于字节内容的写入
示例如下:
RandomAccessFileraf=newRandomAccessFile("f:/1.txt","rw");
inttargetLineNum=10;
intcurrentLineNum=0;
while(raf.readLine()!=null){
if(currentLineNum==targetLineNum){//定位到目标行时结束
break;
}
currentLineNum++;
}
raf.write(" insert".getBytes());
raf.close();
⑥ java 一个文件内容写入或追加到另一个文件和一个文件内容复制到另一个文件在方法上有什么区别吗
楼上的审题,人家题主问的是“文件追加写入”和“文件复制”有没有区别,不是问你怎么实现文件追加复制。
我觉得吧这个得看你的两段代码了,其实想来是没有区别的,复制的本质还是先读文件,再把读出来的东西写到目标文件了。关键在于调用write()方法时追加标志append是true还是false,追加标志默认是false的,也就是不追加,直接覆盖目标文件。