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

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

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

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

Q&A

解決済

1回答

991閲覧

Javaでテキストファイルに読み書きがしたい

botam44

総合スコア11

Java

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

1グッド

1クリップ

投稿2019/05/23 12:24

前提・実現したいこと

現在csvファイルにアクセスして社員情報(社員id、名前、誕生日)を入力及び検索するものを制作しています。
入力してあるでたの続きからまた入力したいため上から検索をかけたいです。
Csvファイルには下のような感じで入れたいです。
id,name,birth
id,name,birth

発生している問題・エラーメッセージ

##最初に作った社員idで試したところエクセルファイルに入らないことと入力が終わった後に上書きしないように次からは最初から検索をかけて何も書いてない行に入力したいです。

import java.io.BufferedReader; import java.io.BufferedWriter; import java.io.File; import java.io.FileWriter; import java.io.IOException; import java.io.InputStreamReader; public class Syain { public static void main(String[] args)throws IOException { String str1 = ""; File file = new File("C:\Users\User\Pictures\Camera Roll\wa.csv"); FileWriter filewriter = new FileWriter(file); System.out.print("syainid:"); BufferedWriter br=new BufferedWriter(filewriter); BufferedReader str=new BufferedReader(new InputStreamReader(System.in)); str1=str.readLine(); br.write(str1); } } ```java ソースコード

試したこと

ここに問題に対して試したことを記載してください。

DrqYuto👍を押しています

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

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

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

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

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

A-pZ

2019/05/24 00:32

実現したいことと、または、問題になっていることをもう一度お読みになり、何を実現したいのか、何が問題になっているのかを簡潔に書かれると、回答が得られるかと存じます。
guest

回答1

0

ベストアンサー

変更があればその都度更新し、CSVファイルを独自のソフトで表示する...

みたいなことでしょうか?

それなら、『流れを考えて』みてください。

ユーザ目線込みで考えると、

ユーザが何か変更する -> csvファイルが変更される ユーザが『〇〇というデータが欲しい』と依頼 -> csvファイルから...

ですよね。

特に "ユーザが何か変更" のやつが厄介。

だから、私なら

1. (ユーザがソフトを起動する) 2. csvファイルを読み込む 3. データが編集されたらその部分を修正して『再書き込み』 4. (ユーザがソフトを閉じようとしている) 5. csvファイルに書き込む

みたいにしますね。

csvファイルなので、表になっていると考えますね。

もし

社員ID - 名前 - 年齢 - 肩書 - 備考

となっているとしたら、

読み込み時は
それぞれをメンバにしたクラス( C言語でいう構造体 ) を用意して、それに入れていく。
( そしてリスト構造か配列に入れていく... )

public class Employee{ private int id_; // 社員ID private String name_; // 名前 private int age_; // 年齢 private String rank_; // 肩書 private String notes_; // 備考 public Employee( int id, String name, int age, String rank, notes ){ // コンストラクタ. メンバの設定 } public int id(){ return id_; } public void setId( int id ){ id_ = id; } public int age(){ return age_; } public void setAge( int a ){ // a が 0 未満や300以上のような // ありえない値なら省く( つまりそのままreturn. ) age_ = a; } // ほかにもある... }

で、動いている間は基本的にこのオブジェクト群を操作する。

変更があればCSVを更新する。(すべて書き込む)

みたいにするかな?

JavaだとCSVを読み込むクラスとかがあると思うのでちょっと違うかもしれませんが。

投稿2019/05/24 02:30

BeatStar

総合スコア4958

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

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

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.48%

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

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

質問する

関連した質問