使用Java多线程读取txt文本文件

1.主要知识点

在这里插入图片描述

2.实验代码


public class xuehao extends Thread {

		public void run(String a)
		{

			for(int i=0;i<30;i++)
			{
				System.out.println(a);
			}
		}
	
}


public class banji extends Thread
{
	static String b;
	public void run(String a)
	{
		b = a;
		for(int i=0;i<30;i++)
		{
			System.out.println(b);
		}
	}
}
import java.io.*;
import java.io.BufferedWriter;
import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.OutputStreamWriter;
import java.io.PrintWriter;

import com.sun.tools.javac.Main;

public class WenJianDuQu1 {

	public static void main(String[] args) throws IOException {
		xuehao XueHao = new xuehao();      //线程对象声明
		banji  BanJi = new banji();
		
		System.out.println("相信你自己");
		byte  buf[] = new byte[12];
		for(int i=0;i<buf.length;i++)
		{
			buf[i]=(byte)i;
		}
		try {
			BufferedReader in = new BufferedReader(
					             new InputStreamReader(
					              new FileInputStream("a.txt")));  //选定读取对象的路径
			
		String line;           //记录每一行的数值
		int k=0;
		while((		line = in.readLine()) !=null)   //读到的行为空退出
		{
			if(k==2)
			{
				for(int i = 0;i<30;i++)
				{
					System.out.println(line);  //输出每一行结果
				}

			}
			if(k==1)
			{
				XueHao.run(line);
				XueHao.start();
			}
			if(k==0)
			{
				BanJi.run(line);
				BanJi.start();
			}
			k++;
		}
		
		} catch (FileNotFoundException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		}

	}	     
}

3.实验步骤

1.找到本次实验项目所在的文件夹下,新建一个a.txt文件

新建
2.打开a.txt,写入自己的班级,学号和姓名(注意换行)
在这里插入图片描述
3.编写实验代码(分3个文件写)
代码如上

4.观察实验结果

输出班级30次
输出学号30次
输出姓名30次

  • 0
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
实现Java多线程读取文本数据并存置数据库的步骤如下: 1. 首先需要创建一个文本文件读取类,可以使用Java的FileReader和BufferedReader类来读取文本文件。可以在程序中使用多个线程同时读取文件中的数据,提高读取效率。 2. 然后需要创建一个数据库连接池,通过该连接池可以获取和释放数据库连接。可以使用Java中的JDBC技术,使用连接池可以提高数据库操作的效率。 3. 接着需要处理读取到的文本数据,将数据插入到数据库中。可以使用Java的PreparedStatement类来执行SQL语句,可以通过批量处理的方式将多条数据一次性插入到数据库中,提高效率。 4. 最后需要对程序进行优化,可以使用线程池来管理线程,提高线程的复用性和效率。可以使用缓存技术来减少数据库的访问,提高程序的运行效率。 下面是一个简单的示例代码: ``` import java.io.BufferedReader; import java.io.FileReader; import java.sql.Connection; import java.sql.DriverManager; import java.sql.PreparedStatement; import java.util.concurrent.ExecutorService; import java.util.concurrent.Executors; public class MultiThreadedFileReader { private static final String DB_DRIVER = "com.mysql.jdbc.Driver"; private static final String DB_CONNECTION = "jdbc:mysql://localhost:3306/testdb"; private static final String DB_USER = "root"; private static final String DB_PASSWORD = "root"; public static void main(String[] args) { ExecutorService executor = Executors.newFixedThreadPool(5); try { Class.forName(DB_DRIVER); Connection connection = DriverManager.getConnection(DB_CONNECTION, DB_USER, DB_PASSWORD); String line; int count = 0; BufferedReader br = new BufferedReader(new FileReader("data.txt")); while ((line = br.readLine()) != null) { count++; executor.submit(new InsertTask(connection, line)); } executor.shutdown(); while (!executor.isTerminated()) { } System.out.println("Inserted " + count + " records into the database."); br.close(); connection.close(); } catch (Exception e) { e.printStackTrace(); } } } class InsertTask implements Runnable { private Connection connection; private String data; public InsertTask(Connection connection, String data) { this.connection = connection; this.data = data; } public void run() { try { PreparedStatement preparedStatement = connection.prepareStatement("INSERT INTO test_table (data) VALUES (?)"); preparedStatement.setString(1, data); preparedStatement.executeUpdate(); preparedStatement.close(); } catch (Exception e) { e.printStackTrace(); } } } ``` 在上述代码中,使用了一个线程池来管理线程,每个线程负责将一条数据插入到数据库中。同时,使用了批量处理的方式,将多条数据一次性插入到数据库中,提高了效率。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值