Java 缩短.txt位置以使用扫描仪读取?
对于一个班级项目,我必须用扫描器阅读一个Java 缩短.txt位置以使用扫描仪读取?,java,function,Java,Function,对于一个班级项目,我必须用扫描器阅读一个.txt文件,让它工作得很好。我的教授唯一不高兴的是,我的代码对.txt文件的路径进行了硬编码,例如: Scanner sc = new Scanner(new File("Users/Me/Documents/Programming/code.txt")); 这意味着它将只读取文件,如果它位于确切的文件夹。不管怎么说,我想知道的是,如何让扫描仪搜索我的文档并读取文件,而不将其放在确切的文件夹中,使其看起来像这样 Scanner sc = new Sca
.txt
文件,让它工作得很好。我的教授唯一不高兴的是,我的代码对.txt
文件的路径进行了硬编码,例如:
Scanner sc = new Scanner(new File("Users/Me/Documents/Programming/code.txt"));
这意味着它将只读取文件,如果它位于确切的文件夹。不管怎么说,我想知道的是,如何让扫描仪搜索我的文档并读取文件,而不将其放在确切的文件夹中,使其看起来像这样
Scanner sc = new Scanner(new File("code.txt"));
我听说这有点像在.txt文件名中添加一个“\”
,但我不太确定。只要code.txt在同一目录中,“code.txt”就可以正常工作
否则“./code.txt”会将您带到上一个目录,依此类推 只要code.txt在同一目录中,“code.txt”就可以正常工作
否则“./code.txt”会将您带到上一个目录,依此类推 我想你的教授是想把命令行参数传递给你的Java程序。还记得
静态void main
签名中的字符串[]args
吗?这是他可能希望你使用的机制,因为它是最灵活的机制
由于可以在命令行上向程序传递任意数量的字符串,因此可以约定第一个参数是用户希望程序打开的文件名
static public void main(String[] args) {
if (args.length < 1) {
System.err.println("Please pass a file name argument.");
return;
}
Scanner sc = new Scanner(new File(args[0]));
// ... do something useful
}
static public void main(字符串[]args){
如果(参数长度<1){
System.err.println(“请传递一个文件名参数。”);
返回;
}
Scanner sc=新扫描仪(新文件(args[0]);
//…做些有用的事
}
我想你的教授是想把命令行参数传递给你的Java程序。还记得静态void main
签名中的字符串[]args
吗?这是他可能希望你使用的机制,因为它是最灵活的机制
由于可以在命令行上向程序传递任意数量的字符串,因此可以约定第一个参数是用户希望程序打开的文件名
static public void main(String[] args) {
if (args.length < 1) {
System.err.println("Please pass a file name argument.");
return;
}
Scanner sc = new Scanner(new File(args[0]));
// ... do something useful
}
static public void main(字符串[]args){
如果(参数长度<1){
System.err.println(“请传递一个文件名参数。”);
返回;
}
Scanner sc=新扫描仪(新文件(args[0]);
//…做些有用的事
}
如果这是一个Java应用程序,请尝试
Scanner sc = new Scanner(new File(args[0]));
并提供文件名作为第一个命令行参数
当然,这只适用于在
main
方法等中创建扫描仪的情况。您还应该检查args.length
以确保参数存在等。如果这是Java应用程序,请尝试
Scanner sc = new Scanner(new File(args[0]));
并提供文件名作为第一个命令行参数
当然,这只适用于在main
方法等中创建扫描仪的情况。您还应该检查args.length
以确保参数存在等
如果你真的想让你的程序搜索一个文件名并得到它,请修改这里的一个答案
您可以指定搜索位置,然后递归地查看所有文件,直到获得所需的文件名。然后对文件做任何你想做的事。还可以看看是否允许使用Swing组件 如果你真的想让你的程序搜索一个文件名并得到它,请从这里修改一个答案
您可以指定搜索位置,然后递归地查看所有文件,直到获得所需的文件名。然后对文件做任何你想做的事。还可以看看是否允许使用Swing组件 好的,我很确定以下是你的教授想要的,因为我被分配了同样的任务 与其将包含文件名的
文件
实例传递到扫描仪
,为什么不使用扫描仪
读取文件名,创建一个单独的文件
实例,并将扫描仪
读取的文件名传递给它
Scanner input = new Scanner(System.in);
String fileName = input.nextLine();
Scanner scan = new Scanner(new File(fileName));
用户仍将负责提供文件的完整路径,但至少现在它是用户输入的内容,并且没有像您在示例中所显示的那样硬编码到程序中
我很确定这就是你的教授让你写这个程序的意思 好的,我很确定以下是你的教授想要的,因为我被分配了同样的任务 与其将包含文件名的
文件
实例传递到扫描仪
,为什么不使用扫描仪
读取文件名,创建一个单独的文件
实例,并将扫描仪
读取的文件名传递给它
Scanner input = new Scanner(System.in);
String fileName = input.nextLine();
Scanner scan = new Scanner(new File(fileName));
用户仍将负责提供文件的完整路径,但至少现在它是用户输入的内容,并且没有像您在示例中所显示的那样硬编码到程序中
我很确定这就是你的教授让你写这个程序的意思 无论哪种方式,
code.txt
都必须存在于特定位置。对于第一个示例,它必须位于该相对路径,在第二个示例中,它必须位于工作目录中。也许你的教授希望你允许用户输入文件的位置?@Jeffrey也许他希望%UserProfile%
解析为当前用户的ho