JavaRush/Java блог/Архив info.javarush/Работа с файлами с помощью FileInputStream и FileOutputSt...
Artemka58_1
21 уровень

Работа с файлами с помощью FileInputStream и FileOutputStream

Статья из группы Архив info.javarush
участников
Работа с файлами с FileInputStream и FileOutputStream. Работа с файлами с помощью FileInputStream и FileOutputStream - 1Читаю книгу Шилдта, дошёл до работы с файлами. В примере сказано что надо запускать программу из командной строки и вводить названия файлов. Но я учусь в IntelliJ. Как осуществить работу с файлами указав путь к ним? Вот сам пример:
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.IOException;

public class CopyFile {
    public static void main(String[] args) {
        int i;

        FileInputStream fin;
        FileOutputStream fout;

        if (args.length != 2) {
            System.out.println("Usage: CopyFile From To.");
            return;
        }

        try {
            fin = new FileInputStream(args[0]);
        } catch (FileNotFoundException exc) {
            System.out.println("Input file not found.");
            return;
        }

        try {
            fout = new FileOutputStream(args[1]);
        } catch (FileNotFoundException exc) {
            System.out.println("Error opening output file.");
            try {
                fin.close();
            } catch (IOException exc2) {
                System.out.println("Error closing input file.");
            }
            return;
        }

        try {
            do {
                i = fin.read();
                if (i != -1) fout.write(i);
            } while (i != -1);
        } catch (IOException exc) {
            System.out.println("Fi;e error.");
        }

        try {
            fin.close();
        } catch (IOException exc) {
            System.out.println("Error closing input file.");
        }

        try {
            fout.close();
        } catch (IOException exc) {
            System.out.println("Error closing output file.");
        }
    }
}
Комментарии (7)
  • популярные
  • новые
  • старые
Для того, чтобы оставить комментарий Вы должны авторизоваться
CoDSP
Уровень 20
28 июня 2015, 14:09
В IntelliJ есть Terminal на пример и он по моему ничем от нормальной коммандной строки не отличается.
В переменной сохраняем путь к файлу и потом прибавляем к arg[x] или пишем его полностью при вводе через коммандную строку.
В cmd/terminal надо будет писать что то вроде:
javac («путь к файлу») + CopyFile.java
java CopyFile a.txt b.txt

Если я не ошибаюсь…
Artemka58_1
Уровень 21
28 июня 2015, 14:18
А как прописать путь к этим файлам в самой программе?
sem_top7
Уровень 32
28 июня 2015, 14:20
В общем все правильно. Это называется параметры запуска и в IntelliJ они указываются вот так:

1.В меню Intellij Idea выбираем Run -> Edit Configurations.
2.В поле ввода Program Parameters можно ввести аргументы. Например C:\a.txt C:\b.txt
3.Нажимаем кнопку ОК. Затем Run -> Run. Программа запустилась с нужными параметрами.
Artemka58_1
Уровень 21
28 июня 2015, 14:25
Спасибо большое! Сработало!!!
AndreGold
Уровень 28
28 июня 2015, 14:26
Твой вопрос:
А как прописать путь к этим файлам в самой программе?
У тебя в программе код,
fin = new FileInputStream(args[0]);

Меняем на
fin = new FileInputStream(new File("D:/Gold/gold.txt"));


Это мы прописали путь к файлу в самой программе, если конечно имелся ввиду код программы.
CoDSP
Уровень 20
28 июня 2015, 14:27
Спасибо за инфо, так конечно удобнее и быстрее. Очередное напоминание, что надо учить/знать свой «инструмент».
Artemka58_1
Уровень 21
28 июня 2015, 14:31
Не получилось.