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

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

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

C#はマルチパラダイムプログラミング言語の1つで、命令形・宣言型・関数型・ジェネリック型・コンポーネント指向・オブジェクティブ指向のプログラミング開発すべてに対応しています。

Q&A

解決済

2回答

3362閲覧

C#でファイルの入力がうまくいきません

isida

総合スコア11

C#

C#はマルチパラダイムプログラミング言語の1つで、命令形・宣言型・関数型・ジェネリック型・コンポーネント指向・オブジェクティブ指向のプログラミング開発すべてに対応しています。

0グッド

0クリップ

投稿2016/04/14 13:25

###前提・実現したいこと
C#でファイルの入出力を行いたいです。
richTextbox1に文字を入力→書き込みボタンでファイルを作成。 これは成功しました。

###発生している問題・エラーメッセージ
button2の処理で、richTextbox2に作成したファイルを読み込みボタンで表示したいのですがこれがうまくいきません。

###該当のソースコード
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;
using System.IO;

namespace WindowsFormsApplication7
{
public partial class Form1 : Form
{

string filename = ""; string savepath = ""; string SaveData = ""; public Form1() { InitializeComponent(); } private void button1_Click(object sender, EventArgs e) { /*【ファイルの処理】*/ DateTime dtNow = DateTime.Now; filename = Convert.ToString(dtNow); /*削除する文字の配列*/ char[] removeChars = new char[] { '/', ' ', ':' }; /*削除する文字を1文字ずつ削除する*/ foreach (char c in removeChars) { filename = filename.Replace(c.ToString(), ""); } savepath = Application.StartupPath; savepath = savepath + "\\"; filename += ".CSV"; SaveData = richTextBox1.Text;/*保存するテキスト*/ Encoding sjisEnc = Encoding.GetEncoding("Shift_JIS"); StreamWriter writer = new StreamWriter(savepath + filename, true, sjisEnc); writer.WriteLine(SaveData); writer.Close(); } private void button2_Click(object sender, EventArgs e) { System.IO.StreamReader cReader = (new System.IO.StreamReader(@"C:\text.txt", System.Text.Encoding.Default)); while (cReader.EndOfStream == false) { string line = cReader.ReadLine(); richTextBox2.Text += line + "\r\n"; } cReader.Close(); } }

}

###試したこと
button1のファイルの書き込みはできました。
button2の読み込みでのほうは練習でC直下にファイルを作成してそれを1行ずつ読んでrichTextBox2に表示しているつもりですがうまくいきません。実際よくわかっていないのでめちゃくちゃなことをやっていると思います。どうか教えてください。よろしくお願いします。

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

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

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

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

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

Tak1wa

2016/04/14 17:19

質問の際は、「どううまく行かないのか、期待している動作と現在の動作」を補足してください。
guest

回答2

0

別のファイルを別の場所に作成してメモ帳等で作成して読ませてみては?

もしWindows7以降だとCドライブ直下に作成したつもりが

C:\Users\ユーザ名\AppData\Local\VirtualStore

に作成されていたとかありがちですが..

あと直接関係無いですが、ファイルパスの生成にはSystem.IOにPathクラスにCombineメソッドがあるのでそれを使うようにしましょう

投稿2016/04/14 19:49

dojikko

総合スコア3939

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

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

dojikko

2016/04/14 23:06

読み込みの方でしたね 失礼しました
guest

0

ベストアンサー

上の「button2_Click」のソースをコピペして実行してみましたが、
ファイルの内容がリッチテキストに表示されました。

  • Cドライブ直下に対するアクセス権がないのではないでしょうか?

「@"C:\text.txt"」をデスクトップに変更してみてください

  • テキストファイルの内容が空ということはないでしょうか?

投稿2016/04/14 15:09

退会済みユーザー

退会済みユーザー

総合スコア0

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

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

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.48%

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

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

質問する

関連した質問