yexiuyyds 2022-12-11 15:12 采纳率: 69.2%
浏览 20
已结题

关于#java#的问题,请各位专家解答!(开发工具-eclipse)

img


多线程的题目
关于#java#的问题,请各位专家解答!(开发工具-eclipse)

  • 写回答

1条回答 默认 最新

  • 4-123优秀者 2022-12-11 18:00
    关注
    
    package com.dt.zt.admin;
    import java.io.*;
    import java.util.Random;
    import java.util.Scanner;
    
    public class Test {
        public static void main(String[] args) {
    //        randomName("G:\\com_qfedu\\name.txt");
           Fwriter fwriter = new Fwriter("G:\\com_qfedu\\name.txt");
           Fread fread = new Fread("G:\\com_qfedu\\name.txt", fwriter);
            fread.start();
            fwriter.start();
        }
       
        public static void randomName(String fileName){
            //创建字符串数组保存名字
            String[] names = new String[10];
            //创建文件对象
            File file = new File(fileName);
            try {
                BufferedReader bufferedReader = new BufferedReader(new FileReader(file));
                for (int i = 0; i < 10; i++) {
                    //按行读取数据
                    names[i] = bufferedReader.readLine();
                }
    
                Random random = new Random();
                for (int i = 0; i < 3; i++) {
                    //随机打印名字
                    System.out.println(names[random.nextInt(10)]);
                    //休眠3秒
                    Thread.sleep(3000);
                }
            } catch (Exception e) {
                e.printStackTrace();
            }
        }
    }
    class Fread extends Thread {
        private String fileName;
        private Thread t;
        public StringBuilder stringBuilder = new StringBuilder();
    
    
        public Fread(String fileName, Thread t) {
            this.fileName = fileName;
            this.t = t;
    
        }
        
        @Override
        public void run() {
            try {
                t.join();
                BufferedReader bufferedReader = new BufferedReader(new FileReader(fileName));
                String str = null;
                while ((str = bufferedReader.readLine()) != null) {
                    stringBuilder.append(str);
                }
                System.out.println("stringBuilder = " + stringBuilder);
            } catch (Exception e) {
                e.printStackTrace();
            }
        }
    }
    
    class Fwriter extends Thread{
        private String fileName;
      
        public Fwriter(String fileName){
            this.fileName = fileName;
        }
    
        @Override
        public void run() {
            try {
                BufferedWriter bufferedWriter = new BufferedWriter(new FileWriter(fileName, true));
                for (int i = 0; i < 10; i++) {
                    bufferedWriter.write("\r\n" + i + Thread.currentThread().getName());
                }
                bufferedWriter.close();
            } catch (IOException e) {
                e.printStackTrace();
            }
        }
    }
    
    
    
    
    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论 编辑记录

报告相同问题?

问题事件

  • 系统已结题 12月19日
  • 已采纳回答 12月11日
  • 创建了问题 12月11日

悬赏问题

  • ¥15 在若依框架下实现人脸识别
  • ¥15 网络科学导论,网络控制
  • ¥100 安卓tv程序连接SQLSERVER2008问题
  • ¥15 利用Sentinel-2和Landsat8做一个水库的长时序NDVI的对比,为什么Snetinel-2计算的结果最小值特别小,而Lansat8就很平均
  • ¥15 metadata提取的PDF元数据,如何转换为一个Excel
  • ¥15 关于arduino编程toCharArray()函数的使用
  • ¥100 vc++混合CEF采用CLR方式编译报错
  • ¥15 coze 的插件输入飞书多维表格 app_token 后一直显示错误,如何解决?
  • ¥15 vite+vue3+plyr播放本地public文件夹下视频无法加载
  • ¥15 c#逐行读取txt文本,但是每一行里面数据之间空格数量不同