import java.util.*;
public class Main
{
private static ArrayList lista = new ArrayList();
private static boolean fin;
private static int lineaDesde = 0, lineaHasta = 21;
static void main(String[] args)
{
System.out.print("Introduce nombre archivo: ");
String nombreArchivo = new Scanner(System.in).nextLine();
LeerFichero(nombreArchivo);
do
{
MostrarMenu();
EscribirLineas(lineaDesde, lineaHasta);
LeerTecla();
} while (!fin);
}
private static void LeerTecla()
{
ConsoleKeyInfo cki = new ConsoleKeyInfo();
cki = Console.ReadKey();
if (cki.Key == ConsoleKey.Escape)
{
fin = true;
}
else if (cki.Key == ConsoleKey.UpArrow)
{
if (lineaDesde > 0)
{
lineaDesde--;
lineaHasta--;
}
}
else if (cki.Key == ConsoleKey.DownArrow)
{
if (lineaHasta < lista.size())
{
lineaDesde++;
lineaHasta++;
}
}
else if (cki.Key == ConsoleKey.PageUp)
{
if ((lineaHasta + 21) < lista.size())
{
lineaDesde += 21;
lineaHasta += 21;
}
else
{
lineaDesde += lista.size() - lineaHasta;
lineaHasta += lista.size() - lineaHasta;
}
}
else if (cki.Key == ConsoleKey.PageDown)
{
if ((lineaDesde - 21) > 0)
{
lineaDesde -= 21;
lineaHasta -= 21;
}
else
{
lineaHasta = lineaDesde + (21 - lineaDesde);
lineaDesde = 0;
}
}
}
private static void EscribirLineas(int desde, int hasta)
{
for (int i = desde; i < hasta; i++)
{
System.out.println(lista.get(i));
}
}
private static void MostrarMenu()
{
Console.Clear();
Console.BackgroundColor = ConsoleColor.Cyan;
Console.ForegroundColor = ConsoleColor.Black;
System.out.println(" ==> Lector .txt --- Version 1.0");
Console.SetCursorPosition(0, 23);
Console.BackgroundColor = ConsoleColor.Cyan;
Console.ForegroundColor = ConsoleColor.Black;
System.out.println("Pulse ESC para salir, fecha arriba y abajo para mover");
Console.SetCursorPosition(0, 1);
Console.BackgroundColor = ConsoleColor.Black;
Console.ForegroundColor = ConsoleColor.White;
}
private static void LeerFichero(String nombreArchivo)
{
if (!(new java.io.File(nombreArchivo)).isFile())
{
System.out.println("El fichero de texto no existe");
}
else
{
try
{
java.io.FileReader archivoTexto = new java.io.FileReader(nombreArchivo);
java.io.BufferedReader archivoTextoBufferedReader = new java.io.BufferedReader(archivoTexto);
String line;
do
{
line = archivoTextoBufferedReader.readLine();
if (line != null)
{
lista.add(line);
}
} while (line != null);
archivoTexto.close();
}
catch (RuntimeException e)
{
System.out.println("Error, " + e.getMessage());
}
}
}
}