File writing in java
本问题已经有最佳答案,请猛点这里访问。
我刚开始大学之旅("耶")。我也是这个网站的新手,所以你可以随意向我讲讲我在提问方面可能做错的事情。
我得到了一个已经被评分的项目,并且程序应该=>>首先读取标准输入的行(使用键盘输入文件名),对于每一行输入,如果用户进入出口,应用程序将终止;否则,应用程序将该行解释为文本文件的名称。应用程序创建或重新创建此文件,并向其写入两行输出、文件名和当前日期和时间。然后,应用程序关闭文件,重新打开它进行读取,并将其内容写入标准输出。应用程序将用方括号括起来的文件名写入标准输出。写入文件名后,应用程序写入文件的内容,每行前面都有相应的行数字、完整冒号和空格。我和我的教授说的一样,所以我为任何不清楚的陈述道歉。以下是我要做的:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 | import java.util.Date; import java.text.DateFormat; import java.text.SimpleDateFormat; import java.util.Calendar; import java.io.File; import java.io.ObjectInputStream; import java.io.FileInputStream; import java.io.IOException; import java.util.Scanner; public class Project1 { public static void main() throws IOException { String input =""; while(!sc.equals("exit")) { System.out.println("Enter file here! Type 'exit' to terminate"); Scanner sc = new Scanner(System.in); input = sc.nextLine(); try { File file = new File (input,".txt"); // Creates pointer to a file. ObjectInputStream in = new ObjectInputStream(new FileInputStream(file)); file.createNewFile(); file.getAbsolutePath(); printFileAndDate(file); } catch(IOException e) { System.out.print("Something wrong :("); e.printStackTrace(); } } System.exit(0); } static void printFileAndDate(File temp) { DateFormat dateFormat = new SimpleDateFormat("yyyy/MM/dd HH:mm:ss"); Calendar cal = Calendar.getInstance(); System.out.println("[" + temp.getPath() +" ]"); System.out.println(dateFormat.format(cal.getTime())); } } |
我想做的是:
-获取用户输入=>将输入另存为文件=>调用方法"printfileanddate",并以正确格式打印文件以及当前日期和时间。
但是,每当我运行它时,它总是给我一个异常错误,这意味着文件从未真正创建过,或者它找不到它。
我可以找到问题列表:
首先,您的主要方法签名完全错误
1 |
改为
1 |
其次,在主方法中抛出异常不是一个好的实践。
好的做法是使用Try-Catch块
第三,在while循环之后,您的扫描仪是可变的,这是不合理的。
1 2 3 4 5 |
改为
1 2 3 4 5 |
第四,通过这种方式定义文件变量
改为
第五,在