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

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

¬ойти
–егистраци€
¬осстановить пароль
 
ArmenT
0 / 0 / 0
–егистраци€: 18.09.2016
—ообщений: 44
#1

Ќе удаетс€ прочитать текстовый файл который создан из приложени€ - ѕрограммирование Android

18.09.2016, 10:54. ѕросмотров 359. ќтветов 10
ћетки нет (¬се метки)

«адача открывать из написаного мною приложени€ тектовые файлы которые не созданы этим приложением! я сейчас пришу приложение и дл€ обработки входных данных нужно выбирать файлы которые записываютс€ на планшет после чего содержимое этих текстовых файлов должно быть обработано и прописано в Ѕазы данных Sqlite! € создал все единственное что не получаетс€ это прочитать текстовый фай который не создан самим приложением. ‘актически этот модуль это система рестора данных на случай замены устройства или потери данных! ѕриложение пишу в Androd Studio


дл€ выбора файла € использую FileManager.class

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
106
107
108
109
110
111
112
113
114
115
116
import android.app.AlertDialog;
import android.app.ListActivity;
import android.content.DialogInterface;
import android.content.DialogInterface.OnClickListener;
import android.content.Intent;
import android.os.Bundle;
import android.view.View;
import android.widget.ArrayAdapter;
import android.widget.ListView;
import android.widget.TextView;
import java.io.File;
import java.util.ArrayList;
import java.util.List;
 
public class FileManager extends ListActivity {
    private List<String> directoryEntries = new ArrayList<String>();
    private File currentDirectory = new File("/");
 
    //when application started
    @Override
    public void onCreate(Bundle icicle) {
        super.onCreate(icicle);
        //set main layout
        setContentView(R.layout.fileman);
        //browse to root directory
        browseTo(new File("/"));
    }
 
    //browse to parent directory
    private void upOneLevel() {
        if (this.currentDirectory.getParent() != null) {
            this.browseTo(this.currentDirectory.getParentFile());
        }
    }
 
    //browse to file or directory
    private void browseTo(final File aDirectory) {
        //if we want to browse directory
        if (aDirectory.isDirectory()) {
            //fill list with files from this directory
            this.currentDirectory = aDirectory;
            fill(aDirectory.listFiles());
 
            //set titleManager text
            TextView titleManager = (TextView) findViewById(R.id.titleManager);
            titleManager.setText(aDirectory.getAbsolutePath());
        } else {
            //if we want to open file, show this dialog:
            //listener when YES button clicked
            OnClickListener okButtonListener = new OnClickListener() {
                public void onClick(DialogInterface arg0, int arg1) {
                    //intent to navigate file
                    //Intent i = new Intent(android.content.Intent.ACTION_VIEW, Uri.parse("file://" + aDirectory.getAbsolutePath()));
                    //start this activity
                    //startActivity(i);
 
                    Intent intent = new Intent();
                    intent.putExtra("url", aDirectory.getAbsolutePath().toString());
                    setResult(RESULT_OK, intent);
                    finish();
                }
            };
            //listener when NO button clicked
            OnClickListener cancelButtonListener = new OnClickListener() {
                public void onClick(DialogInterface arg0, int arg1) {
                    //do nothing
                    //or add something you want
                }
            };
 
            //create dialog
            new AlertDialog.Builder(this)
                    .setTitle("бГУбГРбГЫбГҐбГЩбГШбГ™бГФбГСбГР") //title
                    .setMessage("бГТбГ°бГ£бГ*бГЧ бГ§бГРбГШбГЪбГШбГ° бГТбГРбГЃбГ°бГЬбГР " + aDirectory.getName() + "?") //message
                    .setPositiveButton("бГУбГШбГРбГЃ", okButtonListener) //positive button
                    .setNegativeButton("бГРбГ*бГР", cancelButtonListener) //negative button
                    .show(); //show dialog
        }
    }
 
    //fill list
    private void fill(File[] files) {
        //clear list
        this.directoryEntries.clear();
 
        if (this.currentDirectory.getParent() != null)
            this.directoryEntries.add("..");
 
        //add every file into list
        for (File file : files) {
            this.directoryEntries.add(file.getAbsolutePath());
        }
 
        //create array adapter to show everything
        ArrayAdapter<String> directoryList = new ArrayAdapter<String>(this, R.layout.row, this.directoryEntries);
        this.setListAdapter(directoryList);
    }
 
    //when you clicked onto item
    @Override
    protected void onListItemClick(ListView l, View v, int position, long id) {
        //get selected file name
        int selectionRowID = position;
        String selectedFileString = this.directoryEntries.get(selectionRowID);
 
        //if we select ".." then go upper
        if (selectedFileString.equals("..")) {
            this.upOneLevel();
        } else {
            //browse to clicked file or directory using browseTo()
            File clickedFile = null;
            clickedFile = new File(selectedFileString);
            if (clickedFile != null)
                this.browseTo(clickedFile);
        }
    }
отрабатывает корректно и возвращает и путь и им€ файла

после чего пробовал прочитать его 2 способами:

¬ариант 1:
Java
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
    private void readFile(String aFileName) {
        try {
            // открываем поток дл€ чтени€
            BufferedReader br = new BufferedReader(new InputStreamReader(
                    openFileInput(aFileName)));
            String str = "";
            // читаем содержимое
            while ((str = br.readLine()) != null) {
                Log.d(LOG_TAG, str);
            // копируем содержимое в тект поле
                xEditText.setText(str);
            }
        } catch (FileNotFoundException e) {
            e.printStackTrace();
        } catch (IOException e) {
            e.printStackTrace();
        }
    }
ошибки как таковой не дает просто при выполнении строки openFileInput(aFileName) происходит крушение хот€ при дебагинге им€ файла и путь к нему отражаютс€ корректно

¬ариант 2:

Java
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
    private void openFile(String fileName) {
        try {
            InputStream iStream = openFileInput(fileName);
 
            if (iStream != null) {
                InputStreamReader isr = new InputStreamReader(iStream);
                BufferedReader reader = new BufferedReader(isr);
                String line;
                StringBuilder builder = new StringBuilder();
 
                while ((line = reader.readLine()) != null) {
                    builder.append(line + "\n");
                }
 
                iStream.close();
                xEditText.setText(builder.toString());
            }
        } catch (Throwable t) {
            Toast.makeText(getApplicationContext(),
                    "Exception: " + t.toString(), Toast.LENGTH_LONG).show();
        }
    }
в этом случае выскакивает на Exception и говорит что файл отсутсвует хот€ файл есть!

¬ манифесте вроде как все необходимые пермишены прописаны!!!!
XML
1
2
3
4
5
6
    <uses-permission android:name="android.permission.INTERNET" />
    <uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
    <uses-permission android:name="android.permission.ACCESS_WIFI_STATE" />
    <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
    <uses-permission android:name="android.permission.READ_PHONE_STATE" />
    <uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE" />
—амое поразительное что € с помошью системы своего приложени€ создал и записал файл но сам же прочитать его не смог!
очень прошу подсказать решение проблемы
Ћучшие ответы (1)
Similar
Ёксперт
41792 / 34177 / 6122
–егистраци€: 12.04.2006
—ообщений: 57,940
18.09.2016, 10:54     Ќе удаетс€ прочитать текстовый файл который создан из приложени€
ѕосмотрите здесь:

ќбращение к объекту (button) по id, который будет создан при запуске приложени€ - ѕрограммирование Android
«дравствуйте. ѕодскажите как реализовать обработчик кнопок, коотрые создаютс€ циклом. “.е. кнопки делаютс€ в цикле, им присваиваетс€ id....

Ќе удаетс€ остановить воспроизведение потока после закрыти€ и открыти€ приложени€ - ѕрограммирование Android
Ќаписал приложение дл€ воспроизведени€ аудио-потока.  нопки —тарт и —топ работают нормально. ≈сли закрыть приложение не выключа€ поток,...

 ак прочитать db файл? - ѕрограммирование Android
 ак можно прочитать в приложении содержимое db файла который находитс€ на телефоне ?? ƒобавлено через 22 минуты нужны root права дл€...

ѕрочитать файл из res/raw - ѕрограммирование Android
ѕривет. ћожно ли как нибуть прочитать файл из res/raw не с помощью openRawResource()? “о есть получить его им€ и прочитать самому, а не...

Ќужно прочитать html файл - ѕрограммирование Android
ћне необходимо скачать html - файл и прочитать.Ќе можете скинуть уроки,а лучши примеры,как это делать. «аранее спасибо.

ѕочему не возможно прочитать файл - ѕрограммирование Android
File dir_image2 = new File(Environment.getExternalStorageDirectory()+ File.separator+&quot;Ultimate Entity Detector&quot;); ...

Ќевозможно повесить на TextView текстовый расурс после загрузки приложени€ - ѕрограммирование Android
ѕривет) Ќадеюсь на вашу помощь. ≈сть Activity, код метода onCreate() следующий: super.onCreate(savedInstanceState); ...

ѕосле регистрации реклама в сообщени€х будет скрыта и будут доступны все возможности форума.
vxg
ћодератор
3112 / 1914 / 206
–егистраци€: 13.01.2012
—ообщений: 7,298
18.09.2016, 11:17     Ќе удаетс€ прочитать текстовый файл который создан из приложени€ #2
—ообщение было отмечено автором темы, экспертом или модератором как ответ
ArmenT, почему бы просто не открыть его по-человечески?
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
        FileInputStream is = null;
        InputStreamReader in = null;
        BufferedReader br = null;
 
        try {
            File f = new File(Environment.getExternalStorageDirectory().toString(), "filename.txt");
            is = new FileInputStream(f);
            in = new InputStreamReader(is, "UTF-8");
            br = new BufferedReader(in);
 
            String data = br.readLine();
        } catch (Exception e) {
        } finally {
            if (br != null) {
                try {
                    br.close();
                } catch (IOException e) {
                }
            }
            if (in != null) {
                try {
                    in.close();
                } catch (IOException e) {
                }
            }
            if (is != null) {
                try {
                    is.close();
                } catch (IOException e) {
                }
            }
        }
ArmenT
0 / 0 / 0
–егистраци€: 18.09.2016
—ообщений: 44
18.09.2016, 12:26  [“—]     Ќе удаетс€ прочитать текстовый файл который создан из приложени€ #3
спасибо за редактирование учту на будущее

ƒобавлено через 51 минуту
¬се работает! я немного переделал превратил это в процедуру которой передаю им€ файла!

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
private void OFile(String aFileName) {
        FileInputStream is = null;
        InputStreamReader in = null;
        BufferedReader br = null;
        String str = "";
        try {
            File f = new File(aFileName);
            is = new FileInputStream(f);
            in = new InputStreamReader(is, "UTF-8");
            br = new BufferedReader(in);
 
            while ((str = br.readLine()) != null) {
                xEditText.setText(str);
            }
        } catch (Exception e) {
        } finally {
            if (br != null) {
                try {
                    br.close();
                } catch (IOException e) {
                }
            }
            if (in != null) {
                try {
                    in.close();
                } catch (IOException e) {
                }
            }
            if (is != null) {
                try {
                    is.close();
                } catch (IOException e) {
                }
            }
        }
    }
но проблема в том что при чтении много строчных файлов у мен€ визуализируетс€ только последна€ строка! как написать чтоб все строки последовательно копировались бы?

ƒобавлено через 16 минут
ћожет имеет смысол залить эти данные в лист вью т.к. мне потом по строчно их нужно обработать и в базу данных залить? как по вашему будет правильнее?
vxg
ћодератор
3112 / 1914 / 206
–егистраци€: 13.01.2012
—ообщений: 7,298
18.09.2016, 13:06     Ќе удаетс€ прочитать текстовый файл который создан из приложени€ #4
ArmenT, вы в цикле читаете строки и выводите их в одно и тоже поле - почему вас удивл€ет что отображаетс€ только последн€€)? —кладывайте их и выводите результат сложени€ если хотите видеть все содержимое.  ак лучше зависит от того что вы хотите
ArmenT
0 / 0 / 0
–егистраци€: 18.09.2016
—ообщений: 44
18.09.2016, 14:16  [“—]     Ќе удаетс€ прочитать текстовый файл который создан из приложени€ #5
XML
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
23504185204,4,Q
50101245436,3,Q
OQMI-69001/2015/2195,1,8
15792819753,8,8
8731509651DHL,1,8
3867235315DHL,1,8
7850850851DHL,1,8
7926149825DHL,1,8
23502387184,1,K
30170549TNT,1,K
773570787646FED,1,K
773570787738FED,1,K
773570787624FED,1,K
773570787267FED,1,K
773570787473FED,1,K
¬от кусок файла "," это разделитель может посоветуете как мне сделать чтоб загрузились все строки и желательно в јрей из которого € мог бы залить все в таблицу базы данных
vxg
ћодератор
3112 / 1914 / 206
–егистраци€: 13.01.2012
—ообщений: 7,298
18.09.2016, 14:44     Ќе удаетс€ прочитать текстовый файл который создан из приложени€ #6
ArmenT, читать по строкам добавл€€ в массив. ≈сли хотите делить на €чейки вызывайте сплит с разделителем ,
ArmenT
0 / 0 / 0
–егистраци€: 18.09.2016
—ообщений: 44
21.09.2016, 17:00  [“—]     Ќе удаетс€ прочитать текстовый файл который создан из приложени€ #7
ѕри компел€ции дает ошибку! момент динамического заполнени€ јдаптера данными!

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
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
package ge.com2gami.facebook.lasarewhinv;
 
import android.content.Intent;
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.view.View;
import android.widget.ArrayAdapter;
import android.widget.Button;
import android.widget.ImageButton;
import android.widget.ListView;
import android.widget.TextView;
import java.io.BufferedReader;
import java.io.File;
import java.io.FileInputStream;
import java.io.IOException;
import java.io.InputStreamReader;
 
public class RestoreActivity extends AppCompatActivity implements View.OnClickListener {
 
 
    ImageButton btnOKRestore;
    ImageButton btnExitRestore;
    Button btnOpenFile;
    TextView xPath;
    String xFileName;
    String str;
    ArrayAdapter<String> xAdapter;
    ListView lvData;
 
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_restore);
 
        btnOpenFile = (Button) findViewById(R.id.btnOpenFile);
        btnOKRestore = (ImageButton) findViewById(R.id.btnOKRestore);
        btnExitRestore = (ImageButton) findViewById(R.id.btnExitRestore);
        xPath = (TextView) findViewById(R.id.ePath);
        lvData = (ListView) findViewById(R.id.lvData);
 
        btnOpenFile.setOnClickListener(this);
        btnOKRestore.setOnClickListener(this);
        btnExitRestore.setOnClickListener(this);
    }
 
    @Override
    public void onClick(View v) {
 
        switch (v.getId()) {
            case R.id.btnOpenFile:
                ClicOpenFile();
                break;
 
            case R.id.btnOKRestore:
                ClicbtnOKRestore();
                break;
 
            case R.id.btnExitRestore:
                ClickbtnExitRestore();
                break;
        }
    }
 
    private void ClickbtnExitRestore() {
        finish();
    }
 
    private void ClicbtnOKRestore() {
 
    }
 
    private void ClicOpenFile() {
        Intent intent = new Intent(this, FileManager.class);
        startActivityForResult(intent, 1);
    }
 
    // ћетод дл€ открыти€ файлаa
    private void readFile(String aFileName) {
        FileInputStream is = null;
        InputStreamReader in = null;
        BufferedReader br = null;
        try {
            File f = new File(aFileName);
            is = new FileInputStream(f);
            in = new InputStreamReader(is, "UTF-8");
            br = new BufferedReader(in);
 
            while ((str = br.readLine()) != null) {
                // «аполнение Array
                xAdapter = new ArrayAdapter<String>(this, android.R.layout.simple_list_item_1, str);
            }
            lvData.setAdapter(xAdapter);
        } catch (Exception e) {
        } finally {
            if (br != null) {
                try {
                    br.close();
                } catch (IOException e) {
                }
            }
            if (in != null) {
                try {
                    in.close();
                } catch (IOException e) {
                }
            }
            if (is != null) {
                try {
                    is.close();
                } catch (IOException e) {
                }
            }
        }
    }
 
    public void onActivityResult(int requestCode, int resultCode, Intent data) {
        if (data == null) {
            return;
        }
        xFileName = data.getStringExtra("url");
        xPath.setText(xFileName);
        readFile(xFileName);
    }
 
}
—трока в котой показывает ошибку: xAdapter = new ArrayAdapter<String>(this, android.R.layout.simple_list_item_1, str);

содержимое ошибки: Error90, 28) error: no suitable constructor found for ArrayAdapter(RestoreActivity,int,String)
constructor ArrayAdapter.ArrayAdapter(Context,int,int) is not applicable
(argument mismatch; String cannot be converted to int)
constructor ArrayAdapter.ArrayAdapter(Context,int,String[]) is not applicable
(argument mismatch; String cannot be converted to String[])
constructor ArrayAdapter.ArrayAdapter(Context,int,List<String>) is not applicable
(argument mismatch; String cannot be converted to List<String>)

я понимаю что проблема в Context но не знаю как правильно его написать пробовал RestoreActivity.this не срабатывает
подскажите что именно € делаю не так
vxg
ћодератор
3112 / 1914 / 206
–егистраци€: 13.01.2012
—ообщений: 7,298
21.09.2016, 17:13     Ќе удаетс€ прочитать текстовый файл который создан из приложени€ #8
÷итата —ообщение от ArmenT ѕосмотреть сообщение
подскажите что именно € делаю не так
не так все
1 вам нужно считать файл построчно добавл€€ каждую строку в
Java
1
ArrayList<String> strings;
2 после считывани€ установить адаптер на
Java
1
new ArrayAdapter<String>(контекст, android.R.layout.select_dialog_item, strings.toArray(new String[strings.size()]))
ArmenT
0 / 0 / 0
–егистраци€: 18.09.2016
—ообщений: 44
21.09.2016, 20:30  [“—]     Ќе удаетс€ прочитать текстовый файл который создан из приложени€ #9
 ак все это сделать?

ƒобавлено через 24 минуты
переделал

Java
1
2
3
4
5
6
7
8
9
10
11
 
 
    private List<String> list;
 
 
            while ((str = br.readLine()) != null) {
                // «аполнение Array
                list.add(str);
            }
            xAdapter = new ArrayAdapter<String>(this, android.R.layout.simple_list_item_1, list);
            lvData.setAdapter(xAdapter);
ошибки не дает но не заполн€етс€
vxg
ћодератор
3112 / 1914 / 206
–егистраци€: 13.01.2012
—ообщений: 7,298
21.09.2016, 20:42     Ќе удаетс€ прочитать текстовый файл который создан из приложени€ #10
ArmenT, если вы присваиваете адаптер по нажатию кнопочки то вполне возможно что надо вызвать notifyDataSetChanged
MoreAnswers
Ёксперт
37091 / 29110 / 5898
–егистраци€: 17.06.2006
—ообщений: 43,301
24.09.2016, 10:25     Ќе удаетс€ прочитать текстовый файл который создан из приложени€
≈ще ссылки по теме:

ѕрочитать m3u8 файл в строку из url - ѕрограммирование Android
 ак из данного URL скачать m3u8 файл в буфер, не сохран€€ на —ƒ карту, и считать его содержимое в строку?

ѕрочитать файл внутри проекта Android - ѕрограммирование Android
“ребуетс€ внутри проекта из любой папки достать InputStream файла. —пособ с использованием assets не подходит, метод getAssets()...

Ќе удаетс€ создать директорию и записать файл (Android 6) - ѕрограммирование Android
ѕредварительно добавил в permission android.permission.WRITE_EXTERNAL_STORAGE и android.permission.READ_EXTERNAL_STORAGE (хоть по...

 ак создать layout, который запускаетс€ один раз, при первом запуске приложени€? - ѕрограммирование Android
 ак создать layout, который запускаетс€ один раз, при первом запуске приложени€? т.е. один раз запустилось и всЄ.

 ак создать массив который сохран€ет свои значение даже после закрыти€ приложени€ - ѕрограммирование Android
«дравствуйте, уважаемые программисты! Ќе могли бы вы мне помочь?  ак создать массив который сохран€ет свои значение даже после...


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

»ли воспользуйтесь поиском по форуму:
ArmenT
0 / 0 / 0
–егистраци€: 18.09.2016
—ообщений: 44
24.09.2016, 10:25  [“—]     Ќе удаетс€ прочитать текстовый файл который создан из приложени€ #11
vxg, ƒоброго времени суток!

” мен€ полное убеждение в том что мен€ просто зациклило и € в упор не вижу решени€ проблемы!

ѕроблема в том что не происходит визуализаи€ текста прочитаного с файла, причин может быть две:
1. не заполн€етс€ Ћист list.add(str);
2. ƒаные из листа не передаютс€ јдаптеру и соответсвенно потом и јйтм листу;

„тоб все стало пон€тно € размещу полный текст и класса и јктивити, мен€ мучают смутные сомнени€ что место имеет кака€ то идиотска€ ошибка которую € просто не вижу потому как слишко долго смотрю словом по принципу "смотришь в книгу видишь фигу"

Ёто сам класс

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
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
import android.content.Intent;
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.view.View;
import android.widget.ArrayAdapter;
import android.widget.Button;
import android.widget.ImageButton;
import android.widget.ListView;
import android.widget.TextView;
import java.io.BufferedReader;
import java.io.File;
import java.io.FileInputStream;
import java.io.IOException;
import java.io.InputStreamReader;
import java.util.List;
 
public class RestoreActivity extends AppCompatActivity implements View.OnClickListener {
 
 
    ImageButton btnOKRestore;
    ImageButton btnExitRestore;
    Button btnOpenFile;
    TextView xPath;
    String xFileName;
    String str;
    ArrayAdapter<String> xAdapter;
    ListView lvData;
    private List<String> list;
 
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_restore);
 
        btnOpenFile = (Button) findViewById(R.id.btnOpenFile);
        btnOKRestore = (ImageButton) findViewById(R.id.btnOKRestore);
        btnExitRestore = (ImageButton) findViewById(R.id.btnExitRestore);
        xPath = (TextView) findViewById(R.id.ePath);
        lvData = (ListView) findViewById(R.id.lvData);
 
        btnOpenFile.setOnClickListener(this);
        btnOKRestore.setOnClickListener(this);
        btnExitRestore.setOnClickListener(this);
    }
 
    @Override
    public void onClick(View v) {
 
        switch (v.getId()) {
            case R.id.btnOpenFile:
                ClicOpenFile();
                break;
 
            case R.id.btnOKRestore:
                ClicbtnOKRestore();
                break;
 
            case R.id.btnExitRestore:
                ClickbtnExitRestore();
                break;
        }
    }
 
    private void ClickbtnExitRestore() {
        finish();
    }
 
    private void ClicbtnOKRestore() {
 
    }
 
    private void ClicOpenFile() {
        Intent intent = new Intent(this, FileManager.class);
        startActivityForResult(intent, 1);
    }
 
    // ћетод дл€ открыти€ файлаa
    private void readFile(String aFileName) {
        FileInputStream is = null;
        InputStreamReader in = null;
        BufferedReader br = null;
 
        try {
            File f = new File(aFileName);
            is = new FileInputStream(f);
            in = new InputStreamReader(is, "UTF-8");
            br = new BufferedReader(in);
 
            while ((str = br.readLine()) != null) {
                // «аполнение Array
                list.add(str);
            }
            xAdapter = new ArrayAdapter<String>(this, android.R.layout.simple_list_item_1, list);
            lvData.setAdapter(xAdapter);
        } catch (Exception e) {
        } finally {
            if (br != null) {
                try {
                    br.close();
                } catch (IOException e) {
                }
            }
            if (in != null) {
                try {
                    in.close();
                } catch (IOException e) {
                }
            }
            if (is != null) {
                try {
                    is.close();
                } catch (IOException e) {
                }
            }
        }
    }
 
    public void onActivityResult(int requestCode, int resultCode, Intent data) {
        if (data == null) {
            return;
        }
        xFileName = data.getStringExtra("url");
        xPath.setText(xFileName);
        readFile(xFileName);
    }
 
}

Ёто јктивити

XML
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
106
107
108
109
110
111
112
113
114
115
116
117
118
119
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:background="@layout/rect"
    android:orientation="vertical"
    android:weightSum="1">
 
    <TableRow
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:layout_gravity="top"
        android:weightSum="1">
 
        <TextView
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:textAppearance="?android:attr/textAppearanceMedium"
            android:text="@string/tPath"
            android:id="@+id/tPath"
            android:layout_margin="5dp" />
 
        <TextView
            android:id="@+id/ePath"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:text="/sdcard/inventfiles"
            android:textAppearance="?android:attr/textAppearanceMedium"
            android:textColor="#010199"
            android:enabled="false"
            android:layout_weight="0.26"
            android:layout_margin="5dp" />
 
        <Button
            android:id="@+id/btnOpenFile"
            style="?android:attr/buttonStyleSmall"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:text="@string/a2" />
 
    </TableRow>
    <TableLayout
        android:layout_width="fill_parent"
        android:layout_height="wrap_content">
 
        <TableRow
            android:layout_width="fill_parent"
            android:layout_height="fill_parent">
 
            <Button
                android:id="@+id/bIdnCode"
                android:layout_width="0dp"
                android:layout_height="70dp"
                android:layout_column="1"
                android:layout_gravity="center_vertical"
                android:layout_weight="0.1"
                android:text="@string/textIdnCode"
                android:textColor="#010199" />
 
            <Button
                android:id="@+id/bInvoiceNum"
                android:layout_width="0dp"
                android:layout_height="70dp"
                android:layout_column="2"
                android:layout_gravity="center_vertical"
                android:layout_weight="0.5"
                android:text="@string/colInvoiceNum"
                android:textColor="#010199" />
 
            <Button
                android:id="@+id/bParcelQw"
                android:layout_width="0dp"
                android:layout_height="70dp"
                android:layout_column="3"
                android:layout_gravity="center_vertical"
                android:layout_weight="0.2"
                android:text="@string/colParcelQw"
                android:textColor="#010199" />
 
            <Button
                android:id="@+id/bZonaName"
                android:layout_width="0dp"
                android:layout_height="70dp"
                android:layout_column="4"
                android:layout_gravity="center_vertical"
                android:layout_weight="0.2"
                android:text="@string/colZonaName"
                android:textColor="#010199" />
 
        </TableRow>
 
        <ListView
            android:id="@+id/lvData"
            android:layout_width="wrap_content"
            android:layout_height="637dp"
            android:choiceMode="multipleChoice" />
    </TableLayout>
 
    <TableRow
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:layout_gravity="center_horizontal">
 
        <ImageButton
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:id="@+id/btnOKRestore"
            android:src="@drawable/org_current_add"
            android:contentDescription="@string/btnrestore" />
 
        <ImageButton
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:id="@+id/btnExitRestore"
            android:focusableInTouchMode="false"
            android:src="@drawable/btn_close_door"
            android:contentDescription="@string/btnexit" />
    </TableRow>
</LinearLayout>
ƒобавлено через 13 минут
≈сть еще один момент который мен€ беспокоит это цикл

Java
1
2
3
4
            while ((str = br.readLine()) != null) {
                // «аполнение Array
                list.add(str);
            }
при дебаге € обратил внимание на то что значение str это только одна строка! в идее там должно быть N-ое количество строк и € предпологал что этот цикл по строчно должен заполн€ть лист но у мен€ нет уверености что это происходит
Yandex
ќбъ€влени€
24.09.2016, 10:25     Ќе удаетс€ прочитать текстовый файл который создан из приложени€
ќтвет —оздать тему
ќпции темы

 ибер‘орум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
–ейтинг@Mail.ru