2
我有這個程序,它應該存儲在txt文件中的鍵盤請求的信息,但這不保存最後的請求將是一個名爲「cole」的ArrayList,如果我可以幫助這個請。放棄最後一個ArrayList
package lab1;
import java.util.Scanner;
import java.io.*;
import java.util.ArrayList;
public class Lab1 {
public static void main(String[] args) {
// TODO code application logic here
int opc;
Scanner entrada = new Scanner(System.in);
System.out.println("MENU: Eligue su opcion\n");
System.out.println("1.- Crear archivo");
System.out.println("2.- Mas opciones para mostrar");
System.out.println("3.- Escritura en el archivo");
System.out.println("4.- Salir\n");
System.out.println("Introdusca su opcion:");
opc = entrada.nextInt();
if (opc == 1){
FileWriter fichero = null;
PrintWriter pw = null;
try{
//Tiempo al programa de suspencion.
Thread.sleep(2000);
//se abre el archivo txt si este esta creado y el TRUE hace que no borre la informacio que este contiene si es que existe el txt.
fichero = new FileWriter("C:\\Users\\Levenor\\Desktop\\Test\\test.txt", true);
pw = new PrintWriter(fichero);
//En estos parametros se pide la informacion para agregarlo en una lista para luego colocar en el txt.
ArrayList<String> nombre = new ArrayList<String>();
System.out.println("Ingrese Nombre: ");
nombre.add(entrada.nextLine());
Thread.sleep(8000);
ArrayList<String> rut = new ArrayList<String>();
System.out.println("Ingrese RUT: ");
rut.add(entrada.nextLine());
Thread.sleep(8000);
ArrayList<String> edad = new ArrayList<String>();
System.out.println("Ingrese EDAD: ");
edad.add(entrada.nextLine());
Thread.sleep(4000);
// here is arraylist is not save in the archive txt
ArrayList<String> cole = new ArrayList<String>();
System.out.println("Ingrese COLEGIO: ");
cole.add(entrada.nextLine());
Thread.sleep(4000);
//Esta linea hace que las listas se guarden en el archivo de txt.
pw.println("" +nombre +rut +edad +cole);
} catch (Exception e) {
e.printStackTrace();
} finally {
try {
// Nuevamente aprovechamos el finally para
// asegurarnos que se cierra el fichero.
if (null != fichero)
fichero.close();
} catch (Exception e2) {
e2.printStackTrace();
}
}
}
}
也許你有test.txt的空行?將以下語句拆分:'cole.add(entrada.nextLine());'分成三步:'String line = entrada.nextLine(); System.out.println(「未保存的行是:」+行); cole.add(line);'這會幫助你看看發生了什麼。 – alfasin
@alfasin問題在於'nextInt()'不會消耗換行符,因此您需要調用nextLine()來推進掃描器以匹配輸入。請參閱下面的答案。 – doublesharp
拼寫爲「introduzca」,而不是「introdusca」;也是「opción」 - 帶有口音。什麼是錯誤的拼字法:( –