Форум программистов, компьютерный форум CyberForum.ru

Программирование Android

Войти
Регистрация
Восстановить пароль
 
maksim94
0 / 0 / 0
Регистрация: 11.10.2012
Сообщений: 133
#1

Чтение из файла в строку - Android

15.04.2015, 02:24. Просмотров 465. Ответов 12
Метки нет (Все метки)

выручайте! нужно считать текст из i-ого файла, который лежит в папке assets, и отобразить его в textView. можете объяснить, в чем ошибка?
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
@Override
    protected void onCreate(Bundle savedInstanceState) {
        Intent intent = getIntent();
        five = intent.getIntExtra("numberForFifth", 0);
        four = intent.getIntExtra("numberForFourth", 1);
 
        super.onCreate(savedInstanceState);
        setContentView(R.layout.fourth);
 
        textView = (TextView) findViewById(R.id.text);
        textView.setText(read());
    }
 
String read(){
        AssetManager assetManager = getResources().getAssets();
        InputStream inputStream = null;
        StringBuilder total = new StringBuilder();
 
            try
            {
                inputStream = assetManager.open(i+"_ru.txt");
                String line;
                if (inputStream != null) {
                    BufferedReader r = new BufferedReader(new InputStreamReader(inputStream));
                    //String line;
                    while ((line = r.readLine()) != null) {
                        total.append(line);
                        line = total.toString();
                    }
                }
                //line = total.toString();
            }
 
            catch(IOException e)
            {
                e.printStackTrace();
            }
        return(total.toString());
    }
Лучшие ответы (1)
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Armagedo
208 / 208 / 60
Регистрация: 22.08.2014
Сообщений: 644
15.04.2015, 07:09     Чтение из файла в строку #2
Не роя глубже, i инициализирована где-то?
maksim94
0 / 0 / 0
Регистрация: 11.10.2012
Сообщений: 133
15.04.2015, 12:20  [ТС]     Чтение из файла в строку #3
Armagedo, вместо i должно быть four

Добавлено через 2 часа 4 минуты
Armagedo, получится копнуть глубже?
Armagedo
208 / 208 / 60
Регистрация: 22.08.2014
Сообщений: 644
15.04.2015, 12:30     Чтение из файла в строку #4
maksim94, хорошо, но что не так-то?
maksim94
0 / 0 / 0
Регистрация: 11.10.2012
Сообщений: 133
15.04.2015, 12:33  [ТС]     Чтение из файла в строку #5
Armagedo, не пойму, как исправить код, чтобы происходило чтение из файла в переменную string
Armagedo
208 / 208 / 60
Регистрация: 22.08.2014
Сообщений: 644
15.04.2015, 12:41     Чтение из файла в строку #6
maksim94, а чё ты думаешь, что оно не происходит?
Накидай маяков по коду, чтобы видеть где непорядок...

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
@Override
    protected void onCreate(Bundle savedInstanceState) {
        Intent intent = getIntent();
        five = intent.getIntExtra("numberForFifth", 0);
        four = intent.getIntExtra("numberForFourth", 1);
 
        super.onCreate(savedInstanceState);
        setContentView(R.layout.fourth);
 
        textView = (TextView) findViewById(R.id.text);
        textView.setText(read());
    }
 
String read(){
        AssetManager assetManager = getResources().getAssets();
        InputStream inputStream = null;
        StringBuilder total = new StringBuilder();
 
            try
            {
                inputStream = assetManager.open(i+"_ru.txt");
                String line;
                if (inputStream != null) {
                    Toast.makeText(getBaseContext(), "inputStream != null: "+String.valueOf(inputStream != null), Toast.LENGTH_LONG).show();
                    BufferedReader r = new BufferedReader(new InputStreamReader(inputStream));
                    //String line;
                    while ((line = r.readLine()) != null) {
                        total.append(line);
                        line = total.toString();
                    }
                }
                //line = total.toString();
            }
 
            catch(IOException e)
            {
                e.printStackTrace();
            }
         Toast.makeText(getBaseContext(), "total.toString(): "+total.toString(), Toast.LENGTH_LONG).show();
        return(total.toString());
    }
maksim94
0 / 0 / 0
Регистрация: 11.10.2012
Сообщений: 133
15.04.2015, 13:13  [ТС]     Чтение из файла в строку #7
Armagedo, выводится только "total.toString():"
Armagedo
208 / 208 / 60
Регистрация: 22.08.2014
Сообщений: 644
15.04.2015, 13:32     Чтение из файла в строку #8
Цитата Сообщение от maksim94 Посмотреть сообщение
Armagedo, выводится только "total.toString():"
Ну, отлично.
Значит, inputStream - null, т.е. assetManager.open(i+"_ru.txt") ничё хорошего не вернул.

Java
1
2
String fileName = String.valueOf(four)+"_ru.txt";
inputStream = assetManager.open(fileName);
Ещё бы структуру самой паки assets видеть
maksim94
0 / 0 / 0
Регистрация: 11.10.2012
Сообщений: 133
15.04.2015, 13:43  [ТС]     Чтение из файла в строку #9
Armagedo,Чтение из файла в строку
я задаю:
Java
1
inputStream = assetManager.open("3_ru.txt");
но ничего не меняется
maksim94
0 / 0 / 0
Регистрация: 11.10.2012
Сообщений: 133
15.04.2015, 13:54  [ТС]     Чтение из файла в строку #10
Armagedo,
Цитата Сообщение от Armagedo Посмотреть сообщение
line = total.toString();
в этом месте пишет, что line не используется
Armagedo
208 / 208 / 60
Регистрация: 22.08.2014
Сообщений: 644
15.04.2015, 14:08     Чтение из файла в строку #11
Сообщение было отмечено автором темы, экспертом или модератором как ответ
Ну, глянь чё там вообще в assets
Java
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
 try
            {
                String fileName = String.valueOf(four)+"_ru.txt";
                 
               String[] assetsFileList = assetManager.list("");
                
                boolean fileExist = false;
                
                for(int i=0; i<assetsFileList.length;i++){
                      if (assetsFileList[i].equals(fileName)){
                         fileExist = true;
                         break;
                      }
                }
                
                if (fileExist) 
                     Toast.makeText(getBaseContext(), "File "+fileName+" exists", Toast.LENGTH_LONG).show();
                else 
                     Toast.makeText(getBaseContext(), "File "+fileName+" does NOT exist", Toast.LENGTH_LONG).show();
 
                String fileName = String.valueOf(four)+"_ru.txt";
                inputStream = assetManager.open(fileName); 
                ...
maksim94
0 / 0 / 0
Регистрация: 11.10.2012
Сообщений: 133
15.04.2015, 14:46  [ТС]     Чтение из файла в строку #12
Armagedo, выдает: "File 1_ru does NOT exist", но они все-таки есть в этой папке

Добавлено через 17 минут
Armagedo, аее! проблема была в неправильно созданной папке) исправил) не подскажете, как изменить кодировку отображаемого текста, если сами файлы unicode?
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
15.04.2015, 14:57     Чтение из файла в строку
Еще ссылки по теме:

Android Чтение файла с системной директории
Android Чтение и запись xml файла на SD-карту
Чтение ассоциированного .txt файла с внутренней памяти по URI Android
Android Чтение данных из файла
Android Чтение текстового файла

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

Или воспользуйтесь поиском по форуму:
Armagedo
208 / 208 / 60
Регистрация: 22.08.2014
Сообщений: 644
15.04.2015, 14:57     Чтение из файла в строку #13
Цитата Сообщение от maksim94 Посмотреть сообщение
не подскажете, как изменить кодировку отображаемого текста, если сами файлы unicode?
https://groups.google.com/d/msg/andr...Y/Km2gqRyF0SAJ
Yandex
Объявления
15.04.2015, 14:57     Чтение из файла в строку
Ответ Создать тему
Опции темы

Текущее время: 08:46. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru