Форум программистов, компьютерный форум, киберфорум
Программирование Android
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.93/75: Рейтинг темы: голосов - 75, средняя оценка - 4.93
14 / 3 / 0
Регистрация: 10.11.2015
Сообщений: 71

Проверка существования файла. Файл существует, но exists его не видит

02.12.2015, 03:03. Показов 15788. Ответов 6
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Надо проверять наличие файла в директории, где программа создаёт файлы по умолчанию. Файл существует, но exists его не видит. А openFileInput из этого файла содержимое получает. Может exists требует прописывать путь в отличие от openFileInput, тогда как прописать путь, если файл создаётся с помощью openFileOutput?

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
String FILENAMEMusic = "MusicActiv.txt"; 
 
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
 
// проверка существования файла которая не работает
      File file = new File(FILENAMEMusic);
       if(!file.exists()) {
        TextView hTextView = (TextView)findViewById(R.id.textView);
          hTextView.setText("файла нет");
       }
       else{
           TextView hTextView = (TextView)findViewById(R.id.textView);
         hTextView.setText("файл есть");
      }
 
// чтение из этого же файла, которое работает
        fIn = null;
        try {
            fIn = openFileInput(FILENAMEMusic);
        } catch (FileNotFoundException e) {
            e.printStackTrace();
        }
        isr = new InputStreamReader(fIn);
        inputBuffer = new char[1]; // длина считываемой строки
        try {
            isr.read(inputBuffer);
        } catch (IOException e) {
            e.printStackTrace();
        }
        music_activ = new String(inputBuffer);
        activ_music = Integer.valueOf(music_activ);// в число
        if (activ_music == 1) { // если 1 включаем сервис
            startService(new Intent(this, MyService.class));
        }
    }
0
Лучшие ответы (1)
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
02.12.2015, 03:03
Ответы с готовыми решениями:

Проверка существования файла, если файл существует выводится сообщение
здравствуйте. подскажите пожалуйста, как лучше сделать такую штуку: заполняю GridView, нажимаю кнопку сохранить, и данные сохраняются в...

Проверка существования файла и если такого файла не существует, то программа выдает пользователю сообщение
Написать программу, которая спрашивает у пользователя имя файла. Если такого файла не существует, то программа выдает пользователю...

Проверка существования файла, ошибка filekey не существует в контексте
do { Console.WriteLine("Введите путь к файлу"); string filekey = (Console.ReadLine()); ...

6
 Аватар для dajver
411 / 275 / 22
Регистрация: 18.09.2010
Сообщений: 1,114
02.12.2015, 13:42
нет, адрес получается из File, а он один на всех, может вы просто не верно указали адрес
Java
1
String FILENAMEMusic = "MusicActiv.txt";
тут? Может оно не в корне sdcard лежит, а где то глубже?
0
2884 / 2296 / 769
Регистрация: 12.05.2014
Сообщений: 7,978
02.12.2015, 13:45
к чему эти предвательные избыточные проверки?
openFileInput() если кинет исключение - ловим, значит файла нет, печалька, выводим тост
иначе - читаем из него
0
14 / 3 / 0
Регистрация: 10.11.2015
Сообщений: 71
02.12.2015, 14:52  [ТС]
dajver, Оно лежит там, куда сохраняет openFileOutput в котором путь не прописывается, а только имя файла. При этом openFileInput файл видит и читает, а exists не видит. Для поиска файла используют одну и ту же переменную 9 и 22 строки.

Добавлено через 8 минут
Паблито, А можно показать, куда можно дописать в openFileInput() действие при отсутствии файла?
0
2884 / 2296 / 769
Регистрация: 12.05.2014
Сообщений: 7,978
02.12.2015, 15:05
жесть
вот же ловится исключение
Java
1
2
3
} catch (FileNotFoundException e) {
            e.printStackTrace();
        }
можно примерно так, я на коленке копировал код
Java
1
2
3
4
5
6
7
8
9
10
11
12
13
14
        try {
            FileInputStream fIn = openFileInput(FILENAMEMusic);
            InputStreamReader isr = new InputStreamReader(fIn);
            char[] inputBuffer = new char[1]; // длина считываемой строки
            isr.read(inputBuffer);
            music_activ = new String(inputBuffer);
            activ_music = Integer.valueOf(music_activ);// в число
            if (activ_music == 1) { // если 1 включаем сервис
                startService(new Intent(this, MyService.class));
            }
        } catch (IOException e) {
            // файла нет или он не читается по какой-то причине
            // либо подробнее разбираем сообщение об ошибке "е" либо вызываем метод с тостами
        }
1
14 / 3 / 0
Регистрация: 10.11.2015
Сообщений: 71
02.12.2015, 15:16  [ТС]
Паблито, Спасибо, попробую. Но почему не пашет exists() всё равно остаётся загадкой.
0
2884 / 2296 / 769
Регистрация: 12.05.2014
Сообщений: 7,978
02.12.2015, 15:28
Лучший ответ Сообщение было отмечено gvsp как решение

Решение

потому что это разные методы, File надо подсовывать полный путь к файлу
если создаем файл так
Java
1
2
3
4
5
        try {
            openFileOutput("test.txt", MODE_PRIVATE);
        } catch (FileNotFoundException e) {
            e.printStackTrace();
        }
то проверять его существование надо так
Java
1
2
        File f = new File(getFilesDir() + "/test.txt");
        if (f.exists()) // файл есть
1
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
02.12.2015, 15:28
Помогаю со студенческими работами здесь

Проверка существования (Exists) элемента массива
Добрый день. Вопрос такой: Есть массив: array<String^>^files = Directory::GetFiles( "C:\\MyFiles" ); Как проверить...

Проверка существования файла и его запуск
Создать КФ (Primer 11.bat) , который выполняет следующие функции: Очищает экран; Выводит на экран оглавление вашего рабочего...

Проверка на существование файла, если существует, то выдать сообщение и открыть его
есть файл С:\1.txt. на странице кнопка. при нажатии на кнопку необходимо проверить его существование, и если он существует(создан) то...

File.Exists возвращает false, даже когда файл существует
Пишу программу, где в начале должна быть проверка на наличие файла. Код следующий namespace Лаба2_Строки { class Program ...

File.Exists - как определить существует файл или нет?
1. Попробовал, как в форуме в прошлых темах было написано, потом по книге.... Все равно не получается. Напишите, плиз, еще раз, как...


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

Или воспользуйтесь поиском по форуму:
7
Ответ Создать тему
Новые блоги и статьи
SDL3 для Desktop (MinGW): Создаём пустое окно с нуля для 2D-графики на SDL3, Си и C++
8Observer8 10.03.2026
Содержание блога Финальные проекты на Си и на C++: hello-sdl3-c. zip hello-sdl3-cpp. zip Результат:
Установка CMake и MinGW 13.1 для сборки С и C++ приложений из консоли и из Qt Creator в EXE
8Observer8 10.03.2026
Содержание блога MinGW - это коллекция инструментов для сборки приложений в EXE. CMake - это система сборки приложений. Здесь описаны базовые шаги для старта программирования с помощью CMake и. . .
Как дизайн сайта влияет на конверсию: 7 решений, которые реально повышают заявки
Neotwalker 08.03.2026
Многие до сих пор воспринимают дизайн сайта как “красивую оболочку”. На практике всё иначе: дизайн напрямую влияет на то, оставит человек заявку или уйдёт через несколько секунд. Даже если у вас. . .
Модульная разработка через nuget packages
DevAlt 07.03.2026
Сложившийся в . Net-среде способ разработки чаще всего предполагает монорепозиторий в котором находятся все исходники. При создании нового решения, мы просто добавляем нужные проекты и имеем. . .
Модульный подход на примере F#
DevAlt 06.03.2026
В блоге дяди Боба наткнулся на такое определение: В этой книге («Подход, основанный на вариантах использования») Ивар утверждает, что архитектура программного обеспечения — это структуры,. . .
Управление камерой с помощью скрипта OrbitControls.js на Three.js: Вращение, зум и панорамирование
8Observer8 05.03.2026
Содержание блога Финальная демка в браузере работает на Desktop и мобильных браузерах. Итоговый код: orbit-controls-threejs-js. zip. Сканируйте QR-код на мобильном. Вращайте камеру одним пальцем,. . .
SDL3 для Web (WebAssembly): Синхронизация спрайтов SDL3 и тел Box2D
8Observer8 04.03.2026
Содержание блога Финальная демка в браузере. Итоговый код: finish-sync-physics-sprites-sdl3-c. zip На первой гифке отладочные линии отключены, а на второй включены:. . .
SDL3 для Web (WebAssembly): Идентификация объектов на Box2D v3 - использование userData и событий коллизий
8Observer8 02.03.2026
Содержание блога Финальная демка в браузере. Итоговый код: finish-collision-events-sdl3-c. zip Сканируйте QR-код на мобильном и вы увидите, что появится джойстик для управления главным героем. . . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru