Divisor de archivos Curso de Programación Java

Lección:

Administración de Archivos


Ejercicio:

Divisor de archivos 11


Objetivo:

Cree un programa para dividir un archivo (de cualquier tipo) en pedazos de cierto tamaño. ir debe recibir el nombre del archivo y el tamaño como parámetros. Por ejemplo, se puede usar escribiendo:

dividir myFile.exe 2000

Si el archivo "myFile.exe" tiene una longitud de 4500 bytes, ese comando produciría un archivo llamado "myFile.exe.001" de 2000 bytes de largo, otro llamado "myFile.exe.002" de 2000 bytes de largo y otro llamado "myFile.exe.003" de 500 bytes de largo.


Código:

public class Main
{
	public static void main(String[] args)
	{

		java.io.FileInputStream myFile;
		java.io.FileOutputStream myNewFile;

		String nameFile;
		int BUFFER_SIZE;
		int amountRead;
		int count = 1;

		if (args.length == 2)
		{
			nameFile = args[0];
			BUFFER_SIZE = Integer.parseInt(args[1]);

			byte[] data = new byte[BUFFER_SIZE];

			try
			{
				myFile = File.OpenRead(nameFile);
				do
				{
					amountRead = myFile.read(data, 0, BUFFER_SIZE);
					myNewFile = File.Create(nameFile + (new Integer(count)).toString("000"));
					myNewFile.write(data, 0, amountRead);
					count++;
					myNewFile.close();

				} while (amountRead == BUFFER_SIZE);
				myFile.close();
			}
			catch (RuntimeException fileError)
			{
				System.out.println("ERROR has ocurred while executing: " + fileError.getMessage());
			}
		}
		else
		{
			System.out.println("The parameters are incorrects");
			System.out.println("usage: splitfile namefile sizeinbytes");
		}
	}
}