#java
#java
Вопрос:
Я хочу прочитать из файла, где программа получает имя файла (файл также является файлом Java) из аргумента командной строки, а затем печатает только комментарии из файла, который я хочу прочитать из файла, используя java.nio.file.Files
и java.nio.file.Path
, возможно. я должен прочитать имя файла с помощью функции main я не знаю, как это сделать, любая помощь, пожалуйста? на самом деле это мой первый код, который я пишу на Java, поэтому у меня много трудностей, вот что у меня есть до сих пор :
package firtJavaCode;
import java.io.*;
import java.nio.file.Files;
import java.nio.file.Paths;
import java.util.StringTokenizer;
import java.lang.String ;
public class ReadFromFile {
public static void main(String[] args) {
try {
//String filePath = ""; // here is my problem i don't know how to read from a giving file
String line;
BufferedReader br = new BufferedReader(new FileReader(filePath));
int lineNumber = 0;
while ((line = br.readLine()) != null) {
lineNumber ;
if (line.contains("//")) {
StringTokenizer st1 = new StringTokenizer(line, "//");
System.out.println(st1.nextToken());
}
// i still didn't complete the code , just want to figure how to read from file first
}
}catch (Exception e) {
System.out.println(e);
}
}
}
Комментарии:
1. Краткое описание того, как получить доступ к аргументам командной строки в Java .
2. Аргументы командной строки передаются
main()
методу вargs
параметре.
Ответ №1:
У вас есть аргументы, которые записаны в консоли в массиве String[] args . Чтобы получить имя файла, мы предполагаем, что вы выполняете программу следующим образом: java example /home/file.txt
.
args[0] == "/home/file.txt"
Таким образом, путь к файлу уже сохраняется в args[0]
виде строки, поэтому вам не понадобится дополнительное String filepath
в коде.
BufferedReader br = new BufferedReader(new FileReader(args[0]));
Таким образом, в основном аргументы, которые вы вводите после имени программы, сохраняются все в String args[]
массиве.
Я также хотел бы реализовать способ проверки, введен ли только путь к файлу, а не какая-то другая ерунда, подобная этой:
if (args.length() > 0)
{
System.out.println("Error! Too many arguments entered!");
}
Комментарии:
1.
args[0] = "/home/file.txt"
строка пропускается, казалось бы, OP должен присвоить это значение в коде. Если что-нибудь, измените его на равенство,args[0] == "/home/file.txt"
2. уже сделал спасибо за совет, я пропустил ошибку.
3. я использую eclipse, как я могу выполнить код, используя eclipse, а не консоль
4. Перейдите на вкладку «Выполнить» -> Выполнить конфигурации -> Аргументы и введите путь к файлу. Вот учебное пособие с картинками imgur.com/a/qAYjFv0
5. я продолжаю получать отказ в доступе, я попытался поместить файл в то же рабочее пространство моего кода, но я все равно получаю ту же ошибку