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

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

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

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

Java

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

Android Studio

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

解決済

csvファイルを出力しても中身が表示されない

rott
rott

総合スコア6

CSV

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

Java

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

Android Studio

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

2回答

0評価

0クリップ

380閲覧

投稿2022/01/26 05:23

編集2022/01/27 12:58

前提・実現したいこと

AndroidStudioで結果をcsvにして出力するものを作っています。
csvファイルが指定したパスに出力されるのですが中身がない状態で出力されてしまいます
有識者の方何卒ご助力お願いいたします

エラーメッセージは出ていません
パターンが2つありますが二つとも同じような状態になります。

該当のソースコード

長いので出力に必要な部分以外を削りました

result.java

package com.example.Namaeate; import static com.example.Namaeate.StartMenu.kanja_name; import androidx.appcompat.app.AppCompatActivity; import androidx.core.app.ActivityCompat; import android.content.Intent; import android.media.MediaScannerConnection; import android.os.Bundle; import android.os.Environment; import android.view.Gravity; import android.view.View; import android.widget.TextView; import android.widget.Toast; import java.io.BufferedWriter; import java.io.File; import java.io.FileWriter; import java.io.IOException; import java.io.PrintWriter; import java.text.SimpleDateFormat; import java.util.ArrayList; import java.util.Calendar; public class result extends AppCompatActivity { private TextView maru; private TextView batsu; private TextView timestext; public int Debug; public int prob; //問題数 public int quiz; //現在の問題番号 private ArrayList<Integer> ans; public int count; //正解数 public int maisu; public int Difficult; private ArrayList<String> Filename; private ArrayList<Integer> sec; private String strDate; private File csvfile,anspath = new File(Environment.getExternalStorageDirectory().getPath() + "/file/"+ kanja_name +"/結果"); public String[] DifData = {"1","2","3"}; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_result); //Answerから読み込み Intent intent = getIntent(); Debug = intent.getIntExtra("Debug",0); maisu = intent.getIntExtra("maisu",4); Difficult = intent.getIntExtra("Difficult",2); prob = intent.getIntExtra("prob",0); Filename = new ArrayList<String>(intent.getStringArrayListExtra("Filename")); count = intent.getIntExtra("count",0); ans = new ArrayList<Integer>(intent.getIntegerArrayListExtra("ans")); sec = new ArrayList<Integer>(intent.getIntegerArrayListExtra("sec")); getDate(); outputCSV(); } public void getDate(){ //日付 Calendar c = Calendar.getInstance(); SimpleDateFormat sdf = new SimpleDateFormat("yyyyMMddHHmmss"); strDate = sdf.format(c.getTime()); } public void outputCSV(){ //保存形式{ ,namaeate(maisu,difficult),答え,ans(0,1),second} if(!anspath.exists()) {//なかったら作る anspath.mkdirs(); } csvfile = new File(anspath,"/" + strDate + ".csv"); //パターン1 /*try { //StandardCharsetName:"UTF_8"だとcsvファイルで文字化けする BufferedWriter bw = new BufferedWriter(new OutputStreamWriter(new FileOutputStream(csvfile,true), "SHIFT-JIS")); for (int i = 0; i < quiz; i++) {//内容を指定する bw.write(",abdcg");//,でセルを区切る bw.newLine(); }//ファイルに書き出す bw.close(); toastMake(strDate + "保存しました",0,500); } catch (UnsupportedEncodingException e) { e.printStackTrace(); toastMake("保存失敗_Unsupported",0,500); } catch (FileNotFoundException e) { e.printStackTrace(); toastMake("保存失敗_FileNotFound",0,500); } catch (IOException e) { e.printStackTrace(); toastMake("保存失敗_IOException",0,500); }*/ //パターン2/////////////// try { //出力先を作成する FileWriter fw = new FileWriter(csvfile, true); PrintWriter pw = new PrintWriter(new BufferedWriter(fw)); //内容を指定する for (int i = 0; i < quiz; i++) {//内容を指定する pw.print(",名前あて(" + maisu + "枚" + DifData[Difficult] + ")," + Filename.get(i) + "," + ans.get(i) + "," + sec.get(i) );//,でセルを区切る pw.println(); }//ファイルに書き出す pw.close(); //終了メッセージを画面に出力する toastMake(strDate + "保存しました",0,500); } catch (IOException ex) { //例外時処理 ex.printStackTrace(); toastMake("保存失敗",0,500); } ////////////////// //これを入れると pc から見えるようになる。時間差で見えるようになるため一度再接続するのが良い MediaScannerConnection.scanFile(this,new String[]{csvfile.getAbsolutePath()},null,null); }

試したこと

パターン2はこちらを参考にしました
https://teratail.com/questions/25005

Androidstudioのバージョン

Android Studio Arctic Fox | 2020.3.1 Patch 4
Build #AI-203.7717.56.2031.7935034, built on November 21, 2021
ランタイム・バージョン: 11.0.10+0-b96-7249189 amd64
VM: OpenJDK 64-Bit Server VM by Oracle Corporation
Windows 10 10.0
GC: G1 Young Generation, G1 Old Generation
Memory: 1280M
Cores: 6
Registry: external.system.auto.import.disabled=true
Non-Bundled Plugins: org.jetbrains.kotlin

良い質問の評価を上げる

以下のような質問は評価を上げましょう

  • 質問内容が明確
  • 自分も答えを知りたい
  • 質問者以外のユーザにも役立つ

評価が高い質問は、TOPページの「注目」タブのフィードに表示されやすくなります。

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

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

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

teratailでは下記のような質問を「具体的に困っていることがない質問」、「サイトポリシーに違反する質問」と定義し、推奨していません。

  • プログラミングに関係のない質問
  • やってほしいことだけを記載した丸投げの質問
  • 問題・課題が含まれていない質問
  • 意図的に内容が抹消された質問
  • 過去に投稿した質問と同じ内容の質問
  • 広告と受け取られるような投稿

評価を下げると、トップページの「アクティブ」「注目」タブのフィードに表示されにくくなります。

jimbe

2022/01/26 06:33

> 長いので出力に必要な部分以外を削りました ファイル出力が出来ていないのでしたら、実行したら(CSVを出力するパス/ファイルに) ”ABC” と書くだけの最小プログラムをまず作って試したほうが良いのでは無いでしょうか。
rott

2022/01/26 06:49

短くしてやってみたのですが結果は変わらず中身がない状態で出力されました
jimbe

2022/01/26 07:15

やってみられたのでしたら、そのコードをご提示されたほうが、余計な部分が無くて問題点が浮き彫りになり易いのではないでしょうか。

まだ回答がついていません

会員登録して回答してみよう

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

ただいまの回答率
87.20%

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

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

質問する

関連した質問

同じタグがついた質問を見る

CSV

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

Java

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

Android Studio

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