• ベストアンサー

ファイルの読み書きについて

ファイルの読み書きについて質問です。 テキストファイルの読み書きに使うStreamReader、StreamWriterは 文字コードを指定しないと使えませんが、文字コードを指定せずに 使えるファイル読み書きの方法はないのでしょうか? メールソフトを作っていてその中で異なる文字コードのデータを ファイル上で扱わなければいけない(海外から送られてきたUTF-8の 日本語メール等)事に気付きこの質問をさせて頂きました。 使用言語はC#、.net Framework 2.0 (Visual Studio2005)です。

質問者が選んだベストアンサー

  • ベストアンサー
回答No.1

> 文字コードを指定せずに使えるファイル読み書きの方法 FileStreamでRead/Writeしてください。バイナリファイルとして扱えます。

関連するQ&A

  • C# 半角カナの文字化けについて

    こんにちは。 現在、Visual Studio 2005 C#を使っています。 ネットワーク経由で機器の情報を取得しようとしているのですが、文字化けが起きてしまいました。 調べてみると'c0','b2','d1'と帰ってきていて、これらはS-jis半角カナの'タ','イ',’ム’を表しているようです。 少し省略していますが以下のような手順で確認しています private void buttonStart_Click(object sender, EventArgs e) { TcpClient client = new TcpClient(textBoxIP.Text,int.ParstextBoxPort.Text)); NetworkStream netStream = client.GetStream(); StreamReader sr = new StreamReader(netStream); StreamWriter sw = new StreamWriter(netStream); sw.AutoFlush = true; sw.WriteLine("TestCommand"); string s = sr.ReadLine();//ここで文字化け } StreamReader,StreamWriterの設定でEncoding指定が出来るようですが、sjisは無かったように思いました。 (defaultはUTF-8になっているようですので文字化けしたようです。) どのようにすれば、sjisで文字列を取得できるでしょうか?

  • C++でのファイル読み書き

    C++でのテキストファイルの読み書き方法は、具体的にCとどう違うのでしょうか? やはり、Cでいう「fp = fopen("text.txt",r)」みたいに書くのでしょうか? どのようなコードを書くのか知りたいです。よろしくお願いします。

  • C#でテキストファイルの更新がしたい

    C#でテキストファイルを読込み、特定の文字を置換して上書きしたいです。 StreamReaderで読み込んで、変数に退避し、StreamWriterで書くのは出来ると思いますが もっと簡単に、読み込んでRewriteのようなコーディングって出来ないのでしょうか? A.Txt あああ いいい ううう ↓ 【あああ】を【えええ】にしてA.Txtを上書き A.Txt えええ いいい ううう 何かいい方法があれば教えてください。 よろしくお願いいたします。

  • C# StreamReader,StreamWriter による文字化

    C# StreamReader,StreamWriter による文字化け お世話になります。 文字化けで悩んでいます。 Visual Studio 2008 C# にて、テキストファイルからデータを読んで別のテキストファイルに そのまま書き出す(もちろん実際の運用では加工するわけですが)処理で文字化けが起こります。 そのテキストファイル自身を C# で作れば問題はないのですが、メモ帳を使って書き込んだファイルでは 文字化けが起こります。 対処方法があれば教えてください。 以下はその実験に使ったコードです。 using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.IO; namespace ConsoleApplication5 { class Program { static void Main(string[] args) { // これは正常に書き込みできました StreamWriter sw = new StreamWriter(Environment.GetFolderPath(Environment.SpecialFolder.Desktop) + @"\test.txt"); sw.WriteLine("これはてすとです。"); sw.WriteLine("This is test."); sw.Close(); // これも正常に読み込め、書き込みもできました StreamReader sr = new StreamReader(Environment.GetFolderPath(Environment.SpecialFolder.Desktop) + @"\test.txt"); sw = new StreamWriter(Environment.GetFolderPath(Environment.SpecialFolder.Desktop) + @"\newtest.txt"); while (!sr.EndOfStream) { sw.WriteLine(sr.ReadLine()); } sr.Close(); sw.Close(); // 次はあらかじめメモ帳で作ったファイルを読んで、別のファイルに書き出します // これが文字化けします sr = new StreamReader(Environment.GetFolderPath(Environment.SpecialFolder.Desktop) + @"\test2.txt"); sw = new StreamWriter(Environment.GetFolderPath(Environment.SpecialFolder.Desktop) + @"\newtest2.txt"); while (!sr.EndOfStream) { string dat = sr.ReadLine(); sw.WriteLine(dat); Console.WriteLine(dat); } sr.Close(); sw.Close(); } } }

  • visual studio 2010でビルドした実行ファイルは

    visual studio 2010でビルドした実行ファイルは アセンブリ 暗号化をする必要があるのでしょうか? ※コードは解析されたくありません。 Spices.NET 5Jみたいなのが売っていますがちょっと高いです。 1万円未満でvisual studio 2010で使えるものはないでしょうか 変数名と関数名と文字列などは、暗号化したいです。 .NET Framework 4.0を利用します

  • HTMLファイルからcharsetの文字列だけを抜き出すにはどうすれば

    HTMLファイルからcharsetの文字列だけを抜き出すにはどうすれば良いのでしょうか? 本文がHTMLで構成されているメールからcharset=文字コード(Shift_JIS、UTF-8など)の 文字コード部分を抜き出したいのですがどうすれば良いでしょうか? もちろんcharset自体が存在しない場合もあるため、ないときの処理も書かなくては ならないです。(存在しない時にはメールヘッダからの文字コードを渡します) 環境はVista Home Premium、Visual Studio2005(Std)上のC#です。

  • VC++でのiniファイルの読み書き

    今Visual Studio 6.0 Professional Editionを使用して開発を行っています。 そこでiniファイルの読み書きを行う必要があるのですが、ほんとに初心者でどのようにすればいいのかわかりません。 そこで皆さんの知恵をお借りしたいのですが、 サンプルプログラムや役に立つサイトなどを教えていただきたいのです。 やることとしてはiniファイルからデータを読む。 プログラム中のデータをiniファイルの特定のセクションのキーに書き込むです。 よろしくお願いします。

  • VB2005でファイル操作(2)

    前回の質問を踏まえて 記述されているテキストは各行長さ固定にし いったんすべてを取り込み(StreamReader) 取り込んだデータの編集したい行を編集して 編集したデータを書き込みする(StreamWriter) 上記方法を取れば可能になったのですが これですとファイルのサイズが大きくなると 動作に支障をきたす可能性がありそうです すべてを取り込んで編集したい箇所を編集して書き込む方法でなく ピンポイントに任意の行を指定してそこの行だけ上書き編集するような 都合のいい方法はないのでしょうか?(INIファイルの操作みたいに)

  • UTF-8での保存について

     エディットボックスに入力してある日本語の文字列をUTF-8やUTF-8Nでテキストファイルに保存したのですがうまくいきません。  UTF-8の場合はファイルの先頭に3バイトのBOMをつければいいらしいので、 ファイルの先頭に0xEF,0xBB,0xBFの3バイトを追加してテキストファイルに保存しましたがメモ帳で開くと文字化けします(メモ帳で開くときは文字コードをUTF-8にして開いてます)。 作成したテキストファイルをバイナリエディタで開いてみると先頭の3バイトはEFBBBFとなっているので何も問題はないと思うのですが、どうして文字化けするファイルができてしまうのでしょうか? --- 実行環境 --- Microsoft Visual C++ 2010 Express WIN32 ユニコードビルド C言語

  • C#におけるファイル読み取りの文字化け

    開発初心者です。 //Shift-JISコードとして開く System.IO.StreamReader sr = new System.IO.StreamReader(@txtShiteiFile.Text, System.Text.Encoding.GetEncoding(932)); //内容を全て読み込む string textAll = sr.ReadToEnd(); 以上の関数を使ってテキストファイル上の文字を読み取りしているのですが、 textAll 変数に入ったときに文字化けしています。 また、テキストファイルによっては文字化けしないときもあります。 この場合、どのような対処をすればよいのでしょうか?

専門家に質問してみよう