Форум программистов, компьютерный форум, киберфорум
Java SE (J2SE)
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.67/15: Рейтинг темы: голосов - 15, средняя оценка - 4.67
0 / 0 / 0
Регистрация: 15.10.2016
Сообщений: 29
1

Запись данных в файл и чтение от туда с полями

23.06.2017, 17:04. Показов 2890. Ответов 3
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
есть список животных, нужно из записать в файл как то с полями(номер,имя,масса) и потом оттуда при нажатии кнопки на форме загрузить эти данные(номер имя и масса)
пока что, я записываю просто строкой в файл
Java
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
public static void main(String[] args) {
      //  String data = "Это тестовая строка для записи в файл";
        Predator tigr = new Predator(10,"Тигр",10); 
        Predator lev = new Predator(100,"Лев",100); 
    String data = lev.getId()+" "+lev.getName()+" "+lev.getM()+" "+lev.isAlive()+" "; 
        String data2 = tigr.getId()+" "+tigr.getName()+" "+tigr.getM()+" "+tigr.isAlive()+" "; 
writeUsingOutputStream(data, data2);
private static void writeUsingOutputStream(String data, String data2) { 
        OutputStream os = null; 
        try { 
        os = new FileOutputStream(new File("/Users/****/Desktop/animal1/text.txt")); 
        os.write(data.getBytes(), 0, data.length()); 
        os.write(data2.getBytes(), 0, data2.length()); }
catch (IOException e) { 
        e.printStackTrace(); 
        }finally{ 
        try { 
        os.close(); 
        } catch (IOException e) { 
        e.printStackTrace(); 
        } 
        }}
 
}
загрузка из файла
Java
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
26
27
28
29
30
31
32
final ActionListener viza= new ActionListener() {
    
    public void actionPerformed(ActionEvent arg0)   {
        // TODO Auto-generated method stub
        //
        
     try {
                File file = new File("/Users/***/Desktop/animal1/text.txt");
                //создаем объект FileReader для объекта File
                FileReader fr = new FileReader(file);
                //создаем BufferedReader с существующего FileReader для построчного считывания
                BufferedReader reader = new BufferedReader(fr);
                // считаем сначала первую строку
                String line = reader.readLine();
                while (line != null) {
                //  pocazpredat.addActionListener();
                    label.setText(line);
                    okno.add(label);
                    // считываем остальные строки в цикле
                    line = reader.readLine();
                }
            } catch (FileNotFoundException e) {
                e.printStackTrace();
            } catch (IOException e) {
                e.printStackTrace();
       
            
            
            
            }
    }
};
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
23.06.2017, 17:04
Ответы с готовыми решениями:

Чтение текстового файла. Парсинг его данных. Создание исключений для данных. Запись свойств объектов в файл
Проблема такая. Есть файл data.txt. В нем например какие-то данные. Landon Donovan, 150, A...

Сжатие данных, запись в бинарный файл и его чтение
Может кто то объяснить, каким образом строку, состоящую из последовательности 0 и 1 записать в...

Запись данных в файл и чтение, без использование import
Здравствуйте. Весь вопрос в заголовке. как это сделать? Все Русские ресурсы: интернет,литература,...

Работа с двумерными массивами. Чтение данных из текстового файла и запись в текстовый файл
В матрице А найти отношение количества нулевых элементов в количестве ненулевых. Матрицу В...

3
62 / 64 / 14
Регистрация: 25.03.2017
Сообщений: 156
24.06.2017, 10:50 2
so_ily, так а как нужно что бы записывало? в чем вопрос то?
0
0 / 0 / 0
Регистрация: 15.10.2016
Сообщений: 29
24.06.2017, 17:11  [ТС] 3
gubarevs, записывается просто строка, т.е при загрузке не ясно где поле номер или поле имя.Как записать в файл в виде объекта? и считать это в виде объекта?
0
164 / 170 / 139
Регистрация: 28.11.2016
Сообщений: 301
24.06.2017, 17:39 4
Class Predator
разместить в другом пакете отличном от AnimalFrame
Кликните здесь для просмотра всего текста
Java
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
26
27
28
29
30
import java.io.Serializable;
 
public class Predator implements Serializable {
    private int  number;
    private String name;
    private double weight;
 
    public Predator(int number, String name, double weight) {
        this.number = number;
        this.name = name;
        this.weight = weight;
    }
 
    public int getNumber() {
        return number;
    }
 
    public String getName() {
        return name;
    }
 
    public double getWeight() {
        return weight;
    }
 
    @Override
    public String toString() {
        return number +"." + name + ": " + weight;
    }
}

Class AnimalFrame
Кликните здесь для просмотра всего текста
Java
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
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
import javax.swing.*;
import java.awt.*;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.io.*;
import java.util.*;
import java.util.List;
 
public class AnimalFrame extends JFrame {
    private static String fileName = "C:\\Temp\\text.txt";
 
    private JTextArea jTextArea = new JTextArea();
    private JTextField jFileName = new JTextField(20);
    private JFileChooser jFileChooser = new JFileChooser();
    private JButton jButton = new JButton("Open");
 
 
    private class Open2 implements ActionListener {
        @Override
        public void actionPerformed(ActionEvent e) {
 
            jFileChooser.setCurrentDirectory(new File("C:\\Temp"));
            int result = jFileChooser.showOpenDialog(AnimalFrame.this);
            if (result == JFileChooser.APPROVE_OPTION) {
                jFileName.setText(jFileChooser.getSelectedFile().getPath());
            }
            if (result == JFileChooser.CANCEL_OPTION) {
                jFileName.setText("no file opened");
            }
 
        }
    }
 
    private class Open implements ActionListener {
        @Override
        public void actionPerformed(ActionEvent e) {
            try {
                File fileIn = new File(fileName);
                if (!fileIn.exists()) {
                    jFileName.setText("File not found:" + fileName);
                }
                ObjectInputStream sIn = new ObjectInputStream(new FileInputStream(fileIn));
                List<Predator> list = (List<Predator>) sIn.readObject();   // список объектов классов
                for (Predator predator : list) {
                    jTextArea.append(predator.toString()+"\n");
                }
                System.out.println(list);
                for (int i = 0; i < 3; i++) {
                    Predator predator = (Predator) sIn.readObject();   // список объектов классов
                    jTextArea.append(predator.toString()+"\n");
                }
 
            } catch (Exception ex) {
                throw new RuntimeException(ex);
            }
        }
    }
 
 
    public AnimalFrame() throws HeadlessException {
        JPanel jPanel = new JPanel(new GridLayout(1, 4));
        jPanel.add(new JLabel("FileName:"));
        jPanel.add(jFileName);
        jPanel.add(new JLabel("File Button:"));
 
 
        jButton.addActionListener(new Open());
        jPanel.add(jButton);
        add(jPanel, BorderLayout.NORTH);
 
        add(new JScrollPane(jTextArea)); // at center
    }
 
    public static void main(String[] args) throws IOException {
        List<Predator> list = new ArrayList<>();
        list.add(new Predator(1, "Lion", 100));
        list.add(new Predator(2, "Tiger", 80));
        list.add(new Predator(3, "Wolf", 70));
        list.add(new Predator(4, "Fox", 25));
        list.add(new Predator(5, "Leopard", 70));
        try {
            File fileOut = new File(fileName);
            ObjectOutputStream sOut = new ObjectOutputStream(new FileOutputStream(fileOut));
            sOut.writeObject(list);             // сохранить типы
            Predator p2 = new Predator(6, "Coyote", 10);
            Predator p3 = new Predator(7, "Hyena", 40);
            Predator p4 = new Predator(8, "Dog", 50);
            sOut.writeObject(p2);           // по одному объекту
            sOut.writeObject(p3);
            sOut.writeObject(p4);
        } catch (IOException e) {
            throw new RuntimeException(e);
        }
        SwingUtilities.invokeLater(new Runnable() {
            @Override
            public void run() {
                AnimalFrame animalFrame = new AnimalFrame();
                animalFrame.setSize(600, 400);
                animalFrame.setDefaultCloseOperation(WindowConstants.EXIT_ON_CLOSE);
                animalFrame.setLocationRelativeTo(null);
                animalFrame.setVisible(true);
            }
        });
    }
}

Смотрите код. Полагаю речь идет о сериализации, ну вот тут она как раз реализована.
Объекты сохраняются в файл C:\temp\text.txt списком и по одному.
Считываются в таком же порядке.
1
24.06.2017, 17:39
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
24.06.2017, 17:39
Помогаю со студенческими работами здесь

Чтение данных из экселя и запись их туда же
есть файл екселевский (не открытый!!! где то на винте лежит, путь соответственно известен) нужно...

Сериализация объектов с полями std::string + запись/чтение в файл
Здравствуйте! Есть класс: class Guest { private: std::string login;

Чтение файла, чтение названия папки где находится файл, запись данных на PHP
Допустим у нас есть структура с папками типа Large -&gt; Vehicles -&gt; Firetruck_0 В этой папке лежит...

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


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
4
Ответ Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru