我刚刚开始我的大学之旅(' Yay')。我也是该网站的新手,所以我可以随意向我讲解我可能做错的事情,就问问题而言。
我获得了一个项目,该项目已经评分完毕,该程序应该==>> 首先读取标准输入行(使用键盘输入文件名),对于每行输入,如果用户进入exit,则应用程序终止;否则,应用程序将该行解释为文本文件的名称。应用程序创建或重新创建此文件,并向其写入两行输出,文件名和当前日期和时间。然后,应用程序关闭文件,重新打开它以进行读取,并将其内容写入标准输出。应用程序将标准括号括起的文件名写入标准输出。写完文件名后, 应用程序写入文件的内容,每行以相应的行为前缀 数字,一个完整的冒号和一个空格。 我就像我的教授一样措辞,所以我为任何不明确的陈述道歉。这就是我得到的:
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!\n 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"并以正确的格式打印文件以及当前日期和时间。
但是,每当我运行它时,它总是会给我一个异常错误,这意味着该文件从未真正创建过,或者它无法找到它。
答案 0 :(得分:1)
我可以找到ISSUE列表:
首先,您的主要方法签名是完全错误的
public static void main() throws IOException
更改为
public static void main(String[] args) throws IOException
第二,在main方法中抛出异常不是一个好习惯。
好的做法是使用try catch block
第三次,在while循环之后你有你的Scanner变种,这是没有意义的
while(!sc.equals("exit"))
{
System.out.println("Enter file here!\n Type 'exit' to terminate");
Scanner sc = new Scanner(System.in); <-?!!!!!!
更改为
System.out.println("Enter file here!\n Type 'exit' to terminate");
Scanner sc = new Scanner(System.in);
while(!sc.equals("exit"))
{
第四,您可以通过这种方式定义File变量
File file = new File (input,".txt"); <-- totally wrong
更改为
File file = new File ("input.txt"); <-- if you use relative path
第五 System.exit(0);
方法结束时不需要main