加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 编程开发 > Java > 正文

Java 多线程写文件

发布时间:2020-12-15 03:17:24 所属栏目:Java 来源:网络整理
导读:今天PHP站长网 52php.cn把收集自互联网的代码分享给大家,仅供参考。 import java.io.File;import java.io.IOException;import java.io.RandomAccessFile;import java.nio.channels.FileChannel;import java.nio.channels

以下代码由PHP站长网 52php.cn收集自互联网

现在PHP站长网小编把它分享给大家,仅供参考

import java.io.File;

import java.io.IOException;

import java.io.RandomAccessFile;

import java.nio.channels.FileChannel;

import java.nio.channels.FileLock;



/**

 * @author DBJ

 *

 */

public class MyThreadInfoWritor {


    private String filename;

    /**

     *

     */

    public MyThreadInfoWritor(String fileName) {

        this.filename = fileName;

    }


    public void write(MyThreadInfo tInfo) {


        RandomAccessFile out = null;

        File file = new File(this.filename);

        try {

            if (!file.exists()) {

                file.createNewFile();

                out = new RandomAccessFile(file,"rw");

            }

            out = new RandomAccessFile(file,"rw");


            FileChannel fcout = out.getChannel();

            FileLock flout = null;

            while (true) {

                try {

                    flout = fcout.lock();

                    break;

                } catch (Exception e) {

                    System.out.println("其他线程正在操作该文件,当前线程休眠1000毫秒");

                    try {

                        Thread.sleep(1000);

                    } catch (InterruptedException e1) {

                        e1.printStackTrace();

                    }

                }

            }


            long fileLength = out.length();

             out.seek(fileLength);

            out.write(tInfo.toString().getBytes("utf8"));


            flout.release();

            fcout.close();

            out.close();

            out = null;

        } catch (IOException e) {

            file.deleteOnExit();

            System.out.println("Exception encountered: " + e);

        }

    }

}

以上内容由PHP站长网【52php.cn】收集整理供大家参考研究

如果以上内容对您有帮助,欢迎收藏、点赞、推荐、分享。

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读