###前提・実現したいこと
アンドロイド開発の初心者で自作アプリに挑戦しています。
自作アプリから既存のテキストファイルを読みたいのですが、何処にファイルを置けば自作アプリから読めるのでしょうか。
アンドロイド入門サイトを調べて、アプリ内でのファイルへの書き込みと、その書き込んだファイルからの読みだしはできます。実機でもできましたが実機のファイルマネージャでそのファイルを検索しても見つかりません。
「一度実機を再起動させる」という記事もあったので試しましたが駄目です。
そもそも「Kikat以降はSDカードの書き込みはできない」という記事もあり、私が無理なことをしようとしているのでしょうか。
以下に私が試したものを記しますのでご教示頂きますようよろしくお願いします。
###該当のソースコード
[AndroidManifesy.xml]
.....
</application>
[MainDBActivity.java]
package com.android.nakajima.mydbapplication;
import 略
@SuppressWarnings("deprecation")
public class MainDBActivity extends AppCompatActivity {
@Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main_db); Toolbar toolbar = (Toolbar) findViewById(R.id.toolbar); setSupportActionBar(toolbar); File file = null; String readPath = ""; TextView oText1 = (TextView) findViewById(R.id.text1); TextView oText2 = (TextView) findViewById(R.id.text2); file = Environment.getExternalStorageDirectory(); readPath += "SDカード : " + file.getPath() + "\n"; File dir = new File(file.getPath()); final File[] filelist = dir.listFiles(); oText1.setText(readPath); String str1 = "ファイルへ書き込んだ文字です。"; //--------------------- //file write String fn = "testtest1.txt"; String readText = ""; str1 = orgRead(fn); readText = orgRead(fn); if (readText == "") { readText = "ファイルの読みだしデータはありませんでした。"; }else { readText="ファイルからの読みだしデータは[ " + readText + ": ]です。"; } oText2.setText(readText); } //--- ファイル書き込み --- void orgWrite(String fn, String wt){ try{ FileOutputStream fout = openFileOutput(fn, MODE_WORLD_READABLE); fout.write(wt.getBytes()); Log.e("OK","正常書き込みされました"); }catch(FileNotFoundException e){ Log.e("FNF","ファイルがありません"); }catch(IOException e){ Log.e("IOExp","OIエラーです"); } } //--- ファイル読み出し --- String orgRead(String fn){ String str = ""; try{ FileInputStream in = openFileInput(fn); BufferedReader reader = new BufferedReader( new InputStreamReader( in , "UTF-8") ); String tmp; while( (tmp = reader.readLine()) != null ){ str = str + tmp + "--\n"; } reader.close(); Log.e("strs", "読み取った値は= "+str); }catch(FileNotFoundException e){ Log.e("FNF","エラー:読み込みファイルがありません"); str = "FNFエラー"; }catch( IOException e ) { e.printStackTrace(); Log.e("strs", "エラー:読み取りエラーです"); str = "IOエラー"; } return str; }
}
###試したこと
###補足情報(言語/FW/ツール等のバージョンなど)
開発環境: AndroidStudio2.2.3
実機: Zenfone2Laser
###前提・実現したいこと
Androidの自作アプリでテキストファイルを読むにはどうしたら良いのでしょうか。
アンドロイド開発の初心者で自作アプリに挑戦しています。
自作アプリから既存のテキストファイルを読みたいのですが、何処にファイルを置けば自作アプリから読めるのでしょうか。
アンドロイド入門サイトを調べて、アプリ内でのファイルへの書き込みと、その書き込んだファイルからの読みだしはできます。実機でもできましたが実機のファイルマネージャでそのファイルを検索しても見つかりません。
「一度実機を再起動させる」という記事もあったので試しましたが駄目です。
そもそも「Kikat以降はSDカードの書き込みはできない」という記事もあり、私が無理なことをしようとしているのでしょうか。
以下に私が試したものを記しますのでご教示頂きますようよろしくお願いします。
###該当のソースコード
[AndroidManifesy.xml]
.....
</application>
[MainDBActivity.java]
package com.android.nakajima.mydbapplication;
import 略
@SuppressWarnings("deprecation")
public class MainDBActivity extends AppCompatActivity {
@Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main_db); Toolbar toolbar = (Toolbar) findViewById(R.id.toolbar); setSupportActionBar(toolbar); File file = null; String readPath = ""; TextView oText1 = (TextView) findViewById(R.id.text1); TextView oText2 = (TextView) findViewById(R.id.text2); file = Environment.getExternalStorageDirectory(); readPath += "SDカード : " + file.getPath() + "\n"; File dir = new File(file.getPath()); final File[] filelist = dir.listFiles(); oText1.setText(readPath); String str1 = "ファイルへ書き込んだ文字です。"; //--------------------- //file write String fn = "testtest1.txt"; String readText = ""; str1 = orgRead(fn); readText = orgRead(fn); if (readText == "") { readText = "ファイルの読みだしデータはありませんでした。"; }else { readText="ファイルからの読みだしデータは[ " + readText + ": ]です。"; } oText2.setText(readText); } //--- ファイル書き込み --- void orgWrite(String fn, String wt){ try{ FileOutputStream fout = openFileOutput(fn, MODE_WORLD_READABLE); fout.write(wt.getBytes()); Log.e("OK","正常書き込みされました"); }catch(FileNotFoundException e){ Log.e("FNF","ファイルがありません"); }catch(IOException e){ Log.e("IOExp","OIエラーです"); } } //--- ファイル読み出し --- String orgRead(String fn){ String str = ""; try{ FileInputStream in = openFileInput(fn); BufferedReader reader = new BufferedReader( new InputStreamReader( in , "UTF-8") ); String tmp; while( (tmp = reader.readLine()) != null ){ str = str + tmp + "--\n"; } reader.close(); Log.e("strs", "読み取った値は= "+str); }catch(FileNotFoundException e){ Log.e("FNF","エラー:読み込みファイルがありません"); str = "FNFエラー"; }catch( IOException e ) { e.printStackTrace(); Log.e("strs", "エラー:読み取りエラーです"); str = "IOエラー"; } return str; }
}
###試したこと
###補足情報(言語/FW/ツール等のバージョンなど)
開発環境: AndroidStudio2.2.3
実機: Zenfone2Laser
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2017/03/20 03:59
2017/03/20 04:03
2017/03/20 08:46
2017/03/20 09:15
2017/03/21 06:02
2017/03/21 06:46
2017/03/21 07:09