java实现持续写入内容到txt文件

 
import java.io.*;
import java.util.*;

public class LogTest{

 public static void main(String[] args)
 {
  File log=new File("user\\log\\login.log");
  String newLog="UserName:Jim Green  |  Date:"+new Date()+"  |  IP:202.65.21.14";
        appendLog(log,newLog);
 }
 
 public static void appendLog(File log,String newLog)
 {
  Scanner sc=null;
  PrintWriter pw=null;
  try{
   if(!log.exists())//如果文件不存在,则新建.
   {
    File parentDir=new File(log.getParent());
    if(!parentDir.exists())//如果所在目录不存在,则新建.
     parentDir.mkdirs();
    log.createNewFile();
   }
   sc=new Scanner(log);
   StringBuilder sb=new StringBuilder();
   while(sc.hasNextLine())//先读出旧文件内容,并暂存sb中;
   {
    sb.append(sc.nextLine());
    sb.append("\r\n");//换行符作为间隔,扫描器读不出来,因此要自己添加.
   }
   sc.close();
   
   pw=new PrintWriter(new  FileWriter(log),true);
   /*A.*/pw.println(sb.toString());//,写入旧文件内容.
   /*B.*/pw.println(newLog);//写入新日志.
   /*
    * 如果先写入A,最近日志在文件最后.
    * 如是先写入B,最近日志在文件最前.
    */
   pw.close();
  }
  catch(IOException ex)
  {
   ex.printStackTrace();
  }
 }
}


  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Java NIO(New IO)是Java SE 1.4中引入的一组API,用于执行非阻塞I/O操作。使用Java NIO,可以编高性能、可伸缩性更好的应用程序,特别是在处理大量数据时。下面是使用Java NIO持续写入文件的示例代码: ```java import java.io.IOException; import java.nio.ByteBuffer; import java.nio.channels.FileChannel; import java.nio.file.Path; import java.nio.file.Paths; import java.nio.file.StandardOpenOption; public class FileWritingExample { public static void main(String[] args) throws IOException { Path path = Paths.get("output.txt"); FileChannel fileChannel = FileChannel.open(path, StandardOpenOption.CREATE, StandardOpenOption.WRITE); String data = "Hello World!"; ByteBuffer buffer = ByteBuffer.wrap(data.getBytes()); while (buffer.hasRemaining()) { fileChannel.write(buffer); } fileChannel.close(); } } ``` 在上面的示例中,我们使用`FileChannel`类将数据写入文件。我们首先创建一个`Path`对象来表示要写入文件,然后创建一个`FileChannel`对象来打开该文件。我们使用`ByteBuffer`类来包装要写入文件的数据,并使用`write()`方法将数据写入通道。我们使用`hasRemaining()`方法检查缓冲区中是否还有未写入的数据。最后,我们关闭文件通道。 如果要在文件末尾持续写入数据,可以使用`StandardOpenOption.APPEND`选项打开文件通道。例如: ```java FileChannel fileChannel = FileChannel.open(path, StandardOpenOption.CREATE, StandardOpenOption.WRITE, StandardOpenOption.APPEND); ``` 这将在文件末尾持续写入数据,而不是覆盖之前的内容

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值