Есть утилита для сравнения файлов "test.txt" и "test1.txt". В командной строке работает исправно. Для запуска вводим "java -cp . CompFiles test.txt test1.txt"
(текстовые файлы предварительно помещаются в один каталог и все работает ок)
Но как запустить программу из Eclipse, при этом чтобы сразу указать названия файлов? При замене FileInputStream(args[0]) на FileInputStream("test.txt") все равно не видит файл в каталоге.
import java.io.*;
public class CompFiles {
public static void main(String[] args) {
int i = 0, j = 0;
if (args.length != 2) { //убедиться, что имена файлов передаются программе
System.out.println("Использование: Compfiles файл1 файл2");
return;
}
// Сравнить файлы
try ( FileInputStream f1 = new FileInputStream(args[0]);
FileInputStream f2 = new FileInputStream(args[1]))
{
//проверка содержимого файлов
do {
i = f1.read();
j = f2.read();
if(i !=j)break;
} while (i != -1 && j != -1);
if (i !=j)
System.out.println("Содержимое отличачется");
else
System.out.println("Содержимое совпадает");
}
catch (IOException exc) {
System.out.println("Ошибка ввода-вывода " + exc);
}
}
}
Используйте для получения потока в подобных случаях getResourceAsStream, в дальнейшем поможет избежать проблем с работой из jar.
FileInputStream f1 = CompFiles .getResourceAsStream("/test.txt");
Все оказалось гораздо проще, чем я думал. При вызове из командной строки все работает. Но чтобы задать значения сразу, нужно убрать оператор проверки if или оператор перехода return:
if (args.length != 2) { //убедиться, что имена файлов передаются программе
System.out.println("Использование: Compfiles файл1 файл2");
return;
}
Утилита видела, что значения командной строки нулевые и переходила в начало через return.
Для указания аргументов напрямую использовать:
FileInputStream f1 = new FileInputStream("test.txt");
FileInputStream f2 = new FileInputStream("testdata.txt")
В каждой среде разработки в настройках проекта есть возможность указать аргументы командной строки и рабочую папку.
В Eclipse - это место в меню Debug и Run в подпункте Debug Configurations и Run Configurations.
Кофе для программистов: как напиток влияет на продуктивность кодеров?
Рекламные вывески: как привлечь внимание и увеличить продажи
Стратегії та тренди в SMM - Технології, що формують майбутнє сьогодні
Выделенный сервер, что это, для чего нужен и какие характеристики важны?
Хочу в массиве найти максимально длинное словоНо ошибка строке:
Я не совсем понимаю что такое слушатели в Java,а точнее как их связать с кнопкой,например
В базе, в полях таблицы, может встретиться null, там где должно быть 0Как при выборе этого поля его правильно обработать? Сейчас делаю вот так
Написал проект залил на гит установил JenkinsВзял этот проект из git, как теперь на Jenkins запустить тесты?