Harrix Блог

  • Списки статей
    • Все статьи
    • IT
    • Qt
    • C++
    • Сложение двух чисел
    • Web программированиe
    • FAQ
    • Latex
    • Установка программ
    • Мифы
    • Видео
    • Про фото
  • Проекты
  • Harrix.org
  • RSS
  • Контакты

Чтение и запись данных из файла в файл в консольном приложении под Java в IntelliJ IDEA

В статье рассказывается как считать и записать данные из файла под Java в IntelliJ IDEA на примере программы сложения двух чисел.

11.10.2015 2 комментария 20 713 просмотров

В статье рассказывается как считать и записать данные из файла под Java в IntelliJ IDEA на примере программы сложения двух чисел.

Почти все олимпиады по программированию работают с консольными программами, которые что-то считали из файла, провели манипуляции, а потом результат записали в другой файл. Да и многие обычные консольные программы работают по такому же принципу. Вот тут и рассмотрим, как это сделать.

Рассматривать я буду очень простой способ чтения из файла и записи в файл, чтобы код занимал минимум места, так как на тех же олимпиадах времени на написание «правильного» кода мало. Разумеется, что в практических приложениях надо будет предусмотреть множество проверок, обработок исключений и др.

Содержание

  • Создание проекта
  • Файлы
  • Подготовка метода main
  • Чтение из файла
  • Запись в файл

Создание проекта

Создайте пустое консольное приложение с именем, например, ReadWriteInFiles. Если вы не помните, как это сделать, то посмотрите в статье Создание пустого консольного приложения

Файлы

Создаем файл input.txt со следующим содержимым (те числа, что мы должны сложить):

1
2
2
3

И пустой файл output.txt.

Разместите их в папке вашего проекта:
2015-10-11_193258

Подготовка метода main

Чтобы нам не заморачиваться с обработкой исключений, то для метода main пропишем строчку throws IOException:
2015-10-11_190216

Через Alt + Enter подключим соответствующий import.

2015-10-11_190324

Чтение из файла

Читать из файла данные можно разными способами: посимвольно, побитово, целиком и так далее. На мой взгляд, проще всего считать за один раз все строчки из файла в массив строчек, а потом этот массив строчек обрабатывать, как нам нужно.

Это можно сделать следующим образом:

1
List<String> lines = Files.readAllLines(Paths.get("input.txt"), Charset.defaultCharset());

Не забудьте через Alt + Enter все пакеты подключить.

2015-10-11_193357

Теперь в нашем массиве lines все строчки нашего файла. Теперь обрабатывайте их, как хотите. Например, можно пройтись по всем строчкам через цикл:

1
2
3
4
        for (String x:lines)
        {
            //обработка всех строк как нам нужно
        }

Но в нашем случае мы заранее знаем, что там только две строчки с двумя числами и всё. Поэтому просто считываем две строчки из массива lines и переводим в числа их:

1
2
int a = Integer.parseInt(lines.get(0));
int b = Integer.parseInt(lines.get(1));

Теперь можем сложить наши числа:

1
int c = a + b;

2015-10-11_193432

Запись в файл

Теперь мы должна записать результат в файл.

Вначале в текстовую переменную запишем то, что хотим сохранить:

1
String text = Integer.toString(c);

А теперь сохраним эту переменную в нужный нам файл:

1
2
3
PrintWriter out = new PrintWriter("output.txt");
out.println(text);
out.close();

Итоговый текст программы:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
package com.company;
 
import java.io.IOException;
import java.io.PrintWriter;
import java.nio.charset.Charset;
import java.nio.file.Files;
import java.nio.file.Paths;
import java.util.List;
 
public class Main {
 
    public static void main(String[] args) throws IOException {
        List<String> lines = Files.readAllLines(Paths.get("input.txt"), Charset.defaultCharset());
 
        int a = Integer.parseInt(lines.get(0));
        int b = Integer.parseInt(lines.get(1));
 
        int c = a + b;
 
        String text = Integer.toString(c);
        PrintWriter out = new PrintWriter("output.txt");
        out.println(text);
        out.close();
    }
}

2015-10-11_193125

Если мы запустим приложение, то в файле input.txt появится число 5 – сумма двух чисел из файла output.txt.

2015-10-11_191833


Статьи по теме:

  1. Установка связки Android Studio и IntelliJ IDEA
  2. Сложение двух чисел в IntelliJ IDEA на Java (консольное приложение)
  3. Создание пустого консольного приложения под Java в IntelliJ IDEA
  4. Сложение двух чисел в Eclipse на Java (Android приложение)

IT IntelliJ IDEA, Java, Запись в файл, Чтение файла

© 2014 Harrix