前提
android studioを使用してcsvファイルを作成,書き込みをするアプリを作成中です.androidの外部ストレージにcsvファイルを作成し,そこにfloat型の数値を書き込み,それをPCのWindowsに移行したいです.(最終的にはWindowsからlinuxに移行予定)
実現したいこと
・android内にcsvファイルを作成,書き込みできるようにする
・PCに移行し例えば下の画像のようにエクセル等で表示できるようにする.
該当のソースコード
以下のコードでandroidの外部ストレージにcsvファイルを作成,書き込みしました.
java
1package com.example.external_test; 2 3import java.io.File; 4import java.io.FileOutputStream; 5import java.io.IOException; 6import java.io.OutputStreamWriter; 7import android.app.Activity; 8import android.os.Bundle; 9import android.os.Environment; 10import android.widget.Toast; 11 12public class MainActivity extends Activity{ 13@Override 14public void onCreate(Bundle savedInstanceState){ 15super.onCreate(savedInstanceState); 16setContentView(R.layout.activity_main); 17//---writing to files--- 18 try{ 19 if(IsExternalStorageAvailableAndWriteable()){ 20 //---external storage--- 21 File extStorage = getExternalFilesDir(null); 22 File file = new File(extStorage, "testfile3.csv"); 23 FileOutputStream fOut = new FileOutputStream(file); 24 OutputStreamWriter osw = new OutputStreamWriter(fOut); 25 26 //---write the string to the file--- 27 osw.write("書き込む文字列を入力します"); 28 osw.flush(); 29 osw.close(); 30 31 //---display file saved message--- 32 Toast.makeText(MainActivity.this, "File saved successfully", Toast.LENGTH_SHORT).show(); 33 } 34 }catch(IOException ioe){ 35 ioe.printStackTrace(); 36 } 37 } 38 39 public boolean IsExternalStorageAvailableAndWriteable(){ 40 boolean externalStorageAvailable = false; 41 boolean externalStorageWriteable = false; 42 String state = Environment.getExternalStorageState(); 43 44 if(Environment.MEDIA_MOUNTED.equals(state)){ 45 //---you can read and write the media--- 46 externalStorageAvailable = externalStorageWriteable = true; 47 }else if(Environment.MEDIA_MOUNTED_READ_ONLY.equals(state)){ 48 //---you can only read the media--- 49 externalStorageAvailable = true; 50 externalStorageWriteable = false; 51 }else{ 52 //---you cannot read nor write the media--- 53 externalStorageAvailable = externalStorageWriteable = false; 54 } 55 return externalStorageAvailable && externalStorageWriteable; 56 } 57 }
発生している問題・エラーメッセージ
上のコードで作成したファイルをPC上にコピーしたらosw.write()に書き込んだ内容が,エクセル上で開くと
・文字の場合は文字化けして表示された
・int型の場合は1と打っても2と打っても [] と表示された
・float型はosw.write()内に打てませんとエラーが出た
試したこと
float型が打てなかったので他の型で試したところ上記の通り上手く表示されませんでした.
補足情報(FW/ツールのバージョンなど)
今回はandroidの実機ではなくpixel5のエミュレータを使用しました.
参考にしたサイト
http://computerexpert.web.fc2.com/android/recipe10-5.html
回答1件
あなたの回答
tips
プレビュー