質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.48%
CSV

CSV(Comma-Separated Values)はコンマで区切られた明白なテキスト値のリストです。もしくは、そのフォーマットでひとつ以上のリストを含むファイルを指します。

Java

Javaは、1995年にサン・マイクロシステムズが開発したプログラミング言語です。表記法はC言語に似ていますが、既存のプログラミング言語の短所を踏まえていちから設計されており、最初からオブジェクト指向性を備えてデザインされています。セキュリティ面が強力であることや、ネットワーク環境での利用に向いていることが特徴です。Javaで作られたソフトウェアは基本的にいかなるプラットフォームでも作動します。

Android Studio

Android Studioは、 Google社によって開発された、 Androidのネイティブアプリケーション開発に特化した統合開発ツールです。

Q&A

解決済

1回答

457閲覧

android studioでcsvファイルを作成,書き込みしてそれをPCに移行したい

km16

総合スコア12

CSV

CSV(Comma-Separated Values)はコンマで区切られた明白なテキスト値のリストです。もしくは、そのフォーマットでひとつ以上のリストを含むファイルを指します。

Java

Javaは、1995年にサン・マイクロシステムズが開発したプログラミング言語です。表記法はC言語に似ていますが、既存のプログラミング言語の短所を踏まえていちから設計されており、最初からオブジェクト指向性を備えてデザインされています。セキュリティ面が強力であることや、ネットワーク環境での利用に向いていることが特徴です。Javaで作られたソフトウェアは基本的にいかなるプラットフォームでも作動します。

Android Studio

Android Studioは、 Google社によって開発された、 Androidのネイティブアプリケーション開発に特化した統合開発ツールです。

0グッド

0クリップ

投稿2022/08/31 13:52

前提

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

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

hoshi-takanori

2022/08/31 14:04

実際に数値を書き込むコードが見当たりませんが、文字列に変換して書き込んでますか?
jimbe

2022/08/31 18:48

> 文字化けして表示された csv の文字コードを excel が知らない、もしくは excel が分かる文字コードで csv を作らなければならない、だけでしょう。
guest

回答1

0

自己解決

writerの引数にUTF-8を追加し、小数をstring型で文字列として書き込んだらうまくいきました。

投稿2022/09/04 12:49

km16

総合スコア12

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.48%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問