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 用js遍历数据并对非空元素添加css样式
  • ¥15 使用autodl云训练,希望有直接运行的代码(关键词-数据集)
  • ¥50 python写segy数据出错
  • ¥20 关于线性结构的问题:希望能从头到尾完整地帮我改一下,困扰我很久了
  • ¥30 3D多模态医疗数据集-视觉问答
  • ¥20 设计一个二极管稳压值检测电路
  • ¥15 内网办公电脑进行向日葵
  • ¥15 如何输入双曲线的参数a然后画出双曲线?我输入处理函数加上后就没有用了,不知道怎么回事去掉后双曲线可以画出来
  • ¥15 soildworks装配体的尺寸问题
  • ¥100 有偿寻云闪付SDK转URL技术