0 / 0 / 0
Регистрация: 31.10.2012
Сообщений: 48
1

Правильная работа с файловыми потоками

16.08.2014, 20:41. Показов 454. Ответов 1
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Всем доброе время) Я столкнулся с проблемой - препод требует от меня правильного закрытия потоков(говорит, что сейчас работа с файловыми потоками у меня запилена неверно и что нужно каждый раз при записи/чтении открывать и закрывать поток). Помогите Даше Следопыту правильно реализовать работу с потоками=) Вот исходник
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
package com.noveogroup.java.serialize;
 
import java.io.*;
import java.util.logging.Level;
import java.util.logging.Logger;
 
/**
 * blablabla
 * @author artem ryzhikov
 */
public class Serializer {
 
    private ObjectInputStream ois;
    private ObjectOutputStream oos;
 
    private final static Logger LOG = Logger.getLogger(Serializer.class.getName());
 
    public Serializer(final File input , final File output) {
        try {
            ois = new ObjectInputStream(new FileInputStream(input));
            oos = new ObjectOutputStream(new FileOutputStream(output));
        } catch (IOException e){
            LOG.log(Level.SEVERE, "IOException Serializer() :", e);
        }
    }
    public void store(final Object obj) throws IOException {
        if(oos == null) {
            throw new IOException("ObjectOutputStream is null");
        }
        else {
            oos.writeObject(obj);
//            oos.close();
        }
    }
    public Object load() throws IOException , ClassNotFoundException {
        if(ois == null){
            throw new IOException("ObjectInputStream is null");
        }
        Object result = ois.readObject();
//        ois.close();
        return  result;
    }
 
    public void close() {
        try{
            ois.close();
            oos.close();
        } catch (IOException e) {
            LOG.log(Level.SEVERE, "IOException in ObjectStream.close(): ", e);
        }
    }
 
}
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
16.08.2014, 20:41
Ответы с готовыми решениями:

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

Работа с потоками
Здравствуйте! Проблема такова: Делаю 2 потока- Producer и Consumer. Producer Записывает данные в...

Работа с потоками
Добрый день. Никогда не работал с потоками, поэтому прошу о помощи здесь. На вход программы...

Неправильная работа с потоками
Проблема с потоками. Программа не работает коректно. Метод run() в первом и втором потоке не...

1
1186 / 542 / 78
Регистрация: 01.07.2009
Сообщений: 3,517
17.08.2014, 11:15 2
Java
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
class Serializer {
    private final static Logger LOG = Logger.getLogger(Serializer.class.getName());
 
    public void store(final Object obj, final File output) throws IOException {
        try (ObjectOutputStream oos = new ObjectOutputStream(new FileOutputStream(output))){
            oos.writeObject(obj);
        } catch (IOException e){
            LOG.log(Level.SEVERE, "IOException store() :", e);
            throw e;
        }
    }
    public Object load(final File input ) throws IOException , ClassNotFoundException {
        try (ObjectInputStream ois = new ObjectInputStream(new FileInputStream(input))){
            return ois.readObject();
        } catch (IOException e){
            LOG.log(Level.SEVERE, "IOException load() :", e);
            throw e;
        }
    }
}
0
17.08.2014, 11:15
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
17.08.2014, 11:15
Помогаю со студенческими работами здесь

Работа с потоками. Не удается запустить
Не удается запустить на выполнение package threadtest; /** * * @author Comp */ public...

правильная работа? с SDK(jdk6)
Здравствуйте! Почитал форум, все такие продвинутые... хотелось бы, как совершенно новичку попросить...

Работа с потоками. Параллельное выполнение потоков
package com.lessons; import java.io.BufferedWriter; import java.io.File; import...

Работа с файловыми потоками
Принцип работы проги: Открывается окно с ListView (Без чекбоксов и мультивыделения), в который...


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

Или воспользуйтесь поиском по форуму:
2
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2023, CyberForum.ru