Leitura e Escrita de Arquivos com Thread?

6 respostas
threadsprogramaçãojava
L

Galera como faço para ler um arquivo ou mais usando thread e gravar em outro arquivo usando thread também ? Tipo uma leitura e escrita ao mesmo tempo .

Por exemplo queria mostrar o desempenho em função do tempo de ler um arquivo de teste que seria um tempo X , então de forma sequencial com dois arquivos seria gasto 2x esse tempo, então queria ler dois arquivos ao mesmo tempo de forma que seria gasto menos tempo do que se eu fosse ler de forma sequencial, ou seja ler dois ou mais arquivos de forma paralela.

6 Respostas

D

Tem algum código de exemplo?

L

Eu não tenho , mas tenho um video que é praticamente uma demonstração do que quero implementar segue o link abaixo:

D

Comece a desenvolver em venha com as duvidas, a ideia aqui é tirar duvidas.

L

Olha como eu fiz a classe para ler os arquivos usando thread

import java.io.IOException;
import java.nio.file.Files;
import java.nio.file.Path;
import java.nio.file.Paths;
import java.util.logging.Level;
import java.util.logging.Logger;

public class metodoLeitura implements Runnable {
	long inicio;
	public Path path;
	public String nome;
	
        public metodoLeitura(String p,String n){
            inicio = System.currentTimeMillis();
            path = Paths.get(p);	
		nome = n;

	}
	

	public void ler_arquivo() {
		try {	
			byte[] texto = Files.readAllBytes(path);
			
			String lendoArquivo = new String(texto);
			System.out.println(nome+"\n"+lendoArquivo+"\n");
			
			
		} 
		
		catch (IOException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		}
	}
	
	public void run() {
            ler_arquivo();
                long fim = System.currentTimeMillis();
		long total = fim - inicio;
		System.out.println("Tempo Total: "+total);
	}
	
}
L

E aqui eu inicio 3 threads cada uma com um arquivo

import java.util.*;

public class metodoleituratest {
public static void main(String[] args) {
	Thread threadTeste1 = new Thread(new metodoLeitura("arquivo4.txt","1#"));
	Thread threadTeste2 = new Thread(new metodoLeitura("arquivo3.txt","2#"));
	Thread threadTeste3 = new Thread(new metodoLeitura("arquivo1.txt","3#"));                
            
	threadTeste1.start();
	threadTeste2.start();
            threadTeste3.start();               
            
 	}
}
L

Mas mesmo usando Thread, a leitura dos arquivos txt é de forma sequencial , e não simultâneos como no vídeo

Criado 8 de abril de 2017
Ultima resposta 8 de abr. de 2017
Respostas 6
Participantes 2