Java 异步NIO写文件,无队列线程池方案

Posted 川雨淅

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Java 异步NIO写文件,无队列线程池方案相关的知识,希望对你有一定的参考价值。

java.nio.channels.AsynchronousChannel提供了异步写文件方法,

具体代码如下:

技术分享图片
public static void syncWrite(String path){
    File file = new File(path+"warn.log");
            if(!file.exists()) {
                file.createNewFile();
            }
            Path pathSyn = Paths.get(path+line+"warn.log");
            try {
                AsynchronousFileChannel channel = AsynchronousFileChannel.open(pathSyn, StandardOpenOption.WRITE);
                ByteBuffer buffer = ByteBuffer.allocate(1024);
                buffer = ByteBuffer.wrap(clientSender.getBytes("utf-8"));
                Future<Integer> future = channel.write(buffer, channel.size());
                channel.force(true);
                while (!future.isDone());
                buffer.clear();
                channel.close();
            } catch (Exception e) {
                e.printStackTrace();
            }    
}
异步NIO写文件

 

以上是关于Java 异步NIO写文件,无队列线程池方案的主要内容,如果未能解决你的问题,请参考以下文章

Okhttp的线程池和高并发

Java架构师学习路线,JAVA初级到架构师

要成为一个 Java 架构师得学习哪些知识?

java NIO内部如何工作,内部使用线程池吗?

Java NIO Socket编程实例

Day388.Selector&Pipe&fileLock文件锁&Path&Files&AsynchronousFileChannel异步通道 -NIO(代码片