Red de conocimiento informático - Problemas con los teléfonos móviles - RandomAccessFile utiliza múltiples subprocesos para leer archivos y luego fusionarlos en un solo archivo para su almacenamiento. . . . Cómo lograrlo. . .

RandomAccessFile utiliza múltiples subprocesos para leer archivos y luego fusionarlos en un solo archivo para su almacenamiento. . . . Cómo lograrlo. . .

¿embalar? com . ejemplo de prueba de seguridad del teléfono;

¿Importar? Java io *;

/**

*?Creado? ¿Qué usar? ¿IntelliJ? idea.

*?Usuario:? Gestión

*?Fecha:? 13-8-7

*?Hora:? 10:58 am

* ¿Adónde ir? ¿Cambiar? ¿este? ¿plantilla? ¿usar? ¿documento? |?Configuración? |?Archivo? plantilla.

*/

¿Público? ¿clase? ¿Prueba de archivo de acceso aleatorio? {

¿Público? ¿Electricidad estática? ¿Vacío? main(string?[]?args){

prueba {

int? Tamaño del archivo;? //Tamaño del archivo de descripción

int? ¿Pos de inicio? //Comenzar a escribir la posición del archivo

¿Hilo? []?¿Hilo? =?¿Nuevo? hilo[5];? //Definir una matriz de subprocesos

¿Archivo? ¿documento? =?¿Nuevo? file("E:\\baby\\info.txt");//El archivo a copiar

FileInputStream? ¿Fis? =?¿Nuevo? FileInputStream(archivo);? //Archivo cargado en

¿Tamaño de archivo? =?(int)? archivo .length()/5 1;? //Obtiene el tamaño unitario del archivo escrito por un solo hilo.

//Utiliza un bucle for para practicar el inicio de subprocesos múltiples.

for(int?I = 0;i lt5;i){

PosInicio? =?I *Tamaño del archivo; //Posición inicial de escritura del hilo

Subproceso[i]? =?¿Nuevo? Thread(new? DownloadFile(fis, new? RandomAccessFile("E:\\baby\\info_copy.txt", "rw"), startPos, fileSize);

Thread[i].

start();

}

}catch(Exception?e){

e . printstacktrace();

}

}

}

¿Clase? ¿Descargar un archivo? ¿Utensilios? Ejecutable {

¿Privado? ¿FileInputStream? Sí;? //Flujo de entrada de archivos

¿Privado? ¿Archivo de acceso aleatorio? Real Fuerza Aérea;? //fileoutputstream

¿Privado? int? startPos

¿Privado? int? fileUnitSize

¿Privado? int? Longitud;

¿Público? DownloadFile(FileInputStream? Sí, RandomAccessFile? rAF, int? startPos, int? fileUnitSize) {

¿Esto es? =?Sí;

¿Esta, la Royal Air Force? =?RAF;

esta.startPos? =?startPos

this.fileUnitSize? =?fileUnitSize

}

@Override

¿Público? ¿Vacío? correr()? {

Pruebe {

es . skip(iniciar pos);

RAF buscar(iniciar pos); []?¿buffer? =?¿Nuevo? byte[1024];

int? ¿hasbyte? =?0;

while((hasbyte=is.read(buffer))!=-1){

rAF.write(buffer, 0, tiene byte);p>

¿Longitud? = tiene byte;

if(lengthltfileUnitSize){

return;

}

}

} captura (IOException?e){

e . printstacktrace();

}?Finalmente {

system out . p>

Pruebe {

RAF . close();

}catch(IOException?e){

e . p>

}

}

}

}