public class L20 {
public static void main(String[] args) throws IOException{
Scanner input=new Scanner(System.in);
System.out.println("Enter file name");
String in=input.nextLine();
try{
textWriter(in);
textReader(in);
textChanger(in);
}catch(Exception e){
}
}
public static void textWriter(String path) throws IOException{
String[] alphabet=
{"a","b","c","d","e","f","g","h","i","j","k","m","l","n","o","p","q","r","s","t","u","v","w","x","y","z"};
File file=new File(path);
Writer output=null;
Random number=new Random();
output=new BufferedWriter(new FileWriter(file));
int lines=10+number.nextInt(11);
for(int i=0;i<lines;i++){
int it2=1+number.nextInt(9);
int n1=number.nextInt(26);
int n2=number.nextInt(26);
int n3=number.nextInt(26);
String t2=Integer.toString(it2);
String t1=alphabet[n1]+alphabet[n2]+alphabet[n3];
String text=t1+t2;
output.write(text);
((BufferedWriter) output).newLine();
}
output.close();
System.out.println("Your file has been written");
}
public static void textReader(String path) throws IOException{
File file=new File(path);
Scanner input;
input=new Scanner(file);
String line;
while((line=input.nextLine())!=null){
System.out.println(line);
}
input.close();
}
private static void textChanger(String path) throws IOException{
File file=new File(path);
Scanner input2;
input2=new Scanner(file);
String line;
while((line=input2.nextLine())!=null){
System.out.println(line);
}
input2.close();
}
}
textWriter工作正常。 textReader和textChanger完全一样!但textReader工作正常,textChanger没有!为什么?我甚至为每种方法重命名了扫描仪。看来Text.txt只能读一次??
答案 0 :(得分:10)
问题是您的程序在textReader
中无声地崩溃,而textChanger
根本没有被调用。而不是:
while((line=input.nextLine())!=null){
System.out.println(line);
}
你应该用这个:
while(input.hasNextLine()){
System.out.println(input.nextLine());
}
如果没有更多输入, Scanner.nextLine()
将不会返回null
;它会抛出一个NoSuchElementException
。
一般情况下,不要默默地捕获异常。至少致电printStackTrace()
或记录问题!