Java 文件操作- 读取我们在控制台输入中从用户那里获得名称的文件
Java File Operation- Reading a file whose name we get from the user in console input
我必须从控制台中的用户那里获取文件名,比如 A.txt,然后打开文件并读取它(更具体地说,将其标记化)。我该怎么做?我无法从 reader 获取文件名并用 filename.txt 打开它。
这是代码片段:
String file = args[0];
BufferedReader reader = new BufferedReader(new FileReader(file));
args[0]
将引用第一个命令行参数,例如
java Foo filename.txt
如果你想在交互式控制台上使用它,即在程序启动后,你应该使用System.in
,例如
BufferedReader reader = new BufferedReader(new InputStreamReader(System.in));
String filename = reader.readLine();
(顺便说一句,我建议不要使用 FileReader
- 它始终使用平台默认编码。我建议使用包含在 InputStreamReader
中的 FileInputStream
,或者只需使用默认为 UTF-8 但具有允许您指定编码的重载的 Files.newBufferedReader
。)
如果您打算获取用户输入,请使用
Scanner sc = new Scanner(System.in);
String fileName = sc.nextLine();
System.out.println("file name"+fileName);
请尝试从控制台获取文件名。
如果要在BufferedReader中获取,请指定文件的完整路径。
import java.io.BufferedReader;
import java.io.FileReader;
import java.io.IOException;
public class FileReadCommandLine {
public static void main(String[] args) {
BufferedReader br = null;
try {
String sCurrentLine;
br = new BufferedReader(new FileReader(args[0]));
while ((sCurrentLine = br.readLine()) != null) {
System.out.println(sCurrentLine);
}
} catch (IOException e) {
e.printStackTrace();
} finally {
try {
if (br != null)
br.close();
} catch (IOException ex) {
ex.printStackTrace();
}
}
}
}
所以这里你接受来自 args[0] 的命令行参数,这将是你的文件名
将在命令提示符中指定。假设您的文件和 java 程序在同一文件夹中
然后使用 bufferedReader 逐行读取文件。
我必须从控制台中的用户那里获取文件名,比如 A.txt,然后打开文件并读取它(更具体地说,将其标记化)。我该怎么做?我无法从 reader 获取文件名并用 filename.txt 打开它。
这是代码片段:
String file = args[0];
BufferedReader reader = new BufferedReader(new FileReader(file));
args[0]
将引用第一个命令行参数,例如
java Foo filename.txt
如果你想在交互式控制台上使用它,即在程序启动后,你应该使用System.in
,例如
BufferedReader reader = new BufferedReader(new InputStreamReader(System.in));
String filename = reader.readLine();
(顺便说一句,我建议不要使用 FileReader
- 它始终使用平台默认编码。我建议使用包含在 InputStreamReader
中的 FileInputStream
,或者只需使用默认为 UTF-8 但具有允许您指定编码的重载的 Files.newBufferedReader
。)
如果您打算获取用户输入,请使用
Scanner sc = new Scanner(System.in);
String fileName = sc.nextLine();
System.out.println("file name"+fileName);
请尝试从控制台获取文件名。 如果要在BufferedReader中获取,请指定文件的完整路径。
import java.io.BufferedReader;
import java.io.FileReader;
import java.io.IOException;
public class FileReadCommandLine {
public static void main(String[] args) {
BufferedReader br = null;
try {
String sCurrentLine;
br = new BufferedReader(new FileReader(args[0]));
while ((sCurrentLine = br.readLine()) != null) {
System.out.println(sCurrentLine);
}
} catch (IOException e) {
e.printStackTrace();
} finally {
try {
if (br != null)
br.close();
} catch (IOException ex) {
ex.printStackTrace();
}
}
}
}
所以这里你接受来自 args[0] 的命令行参数,这将是你的文件名 将在命令提示符中指定。假设您的文件和 java 程序在同一文件夹中 然后使用 bufferedReader 逐行读取文件。