カテゴリ: C# 更新日: 2026/08/18

C# IoTアプリでデータをローカル保存!初心者向けファイル書き込み・読み込み入門

C#のIoTアプリでデータをローカルに保存する方法
C#のIoTアプリでデータをローカルに保存する方法

先生と生徒の会話形式で理解しよう

生徒

「C#を使ってIoT機器を作っているのですが、取得したセンサーデータをパソコン内に保存する方法がわかりません。」

先生

「IoTアプリにおいて、取得したデータを後で見返したり分析したりするために、ローカル環境(自分のパソコンの中)に保存することは非常に重要です。C#ではテキストファイルを使って簡単に実現できますよ。」

生徒

「難しそうですが、初心者でもすぐに実装できる方法を教えてもらえますか?」

先生

「もちろんです!まずはデータの保存と読み込みの仕組みから見ていきましょう。」

1. IoT開発におけるデータ保存の役割とは

1. IoT開発におけるデータ保存の役割とは
1. IoT開発におけるデータ保存の役割とは

IoTとは「モノのインターネット」の略で、センサーなどが取得した情報をネットワークを通じて活用する仕組みです。その中で、一時的に取得したデータを手元のパソコンや組み込みデバイスのストレージに保存しておくことを「ローカル保存」と呼びます。例えば、部屋の温度を1分ごとに記録して後からグラフにしたり、エラーが発生した際の情報をログとして残したりする場合に必須となる技術です。データを保存することで、インターネットが切断された環境下でも情報を失わずに済みます。

2. ファイル書き込みの基本とテキストファイル

2. ファイル書き込みの基本とテキストファイル
2. ファイル書き込みの基本とテキストファイル

コンピュータの中にあるファイルは、本棚の本のようなものです。データを書き込むことは「ノートに記録を書くこと」、読み込むことは「ノートを開いて中身を読むこと」に例えられます。C#で最も簡単にデータを保存する方法は、テキストファイルを作成してそこに情報を書き込むことです。System.IOという部品(名前空間といいます)を使うことで、ファイル操作が驚くほど簡単になります。名前空間とは、プログラムで使える便利な機能が整理された道具箱のようなものです。

3. センサーデータをファイルに書き込んでみよう

3. センサーデータをファイルに書き込んでみよう
3. センサーデータをファイルに書き込んでみよう

まずは、センサーから取得した数値をファイルに保存するコードを見てみましょう。ここでは、File.WriteAllTextメソッドを使います。このメソッドは、指定したファイルに文字列を丸ごと書き込んでくれる便利な命令です。


using System;
using System.IO;

string data = "2026-07-14, 25.5度";
string filePath = "sensor_log.txt";

File.WriteAllText(filePath, data);
Console.WriteLine("データを保存しました。");

このコードを実行すると、プログラムがある場所に「sensor_log.txt」というファイルが作られます。もし既にファイルが存在する場合は、中身が上書きされるので注意してくださいね。IoTアプリでは、毎回新しいデータを追加していく形が好まれることが多いです。

4. データを追加して保存する方法

4. データを追加して保存する方法
4. データを追加して保存する方法

先ほどのコードでは上書きされてしまうため、過去のデータを残してどんどん追記していく方法が必要です。そのためにFile.AppendAllTextメソッドという、ファイルのお尻に文字を付け足す命令を使います。これを使うと、センサーの履歴を長期間記録していくことが可能になります。


using System;
using System.IO;

string newData = "2026-07-14 10:45, 26.0度" + Environment.NewLine;
string filePath = "sensor_log.txt";

File.AppendAllText(filePath, newData);
Console.WriteLine("データを追記しました。");

ここで出てくるEnvironment.NewLineは「改行」を意味する命令です。これを使わないと、データが横に繋がってしまい、後で読み込むときにどこが区切りか分からなくなってしまいます。プログラムでは、整理整頓がとても大切です。

5. 保存したデータを読み込んで画面に表示する

5. 保存したデータを読み込んで画面に表示する
5. 保存したデータを読み込んで画面に表示する

保存したデータは、もちろん読み込んで確認することもできます。File.ReadAllTextメソッドを使うと、ファイルの中身を全部一度に読み取ることができます。プログラムで読み込んだデータを、画面に表示したり計算に使ったりすることで、IoTアプリとしての機能が完成します。


using System;
using System.IO;

string filePath = "sensor_log.txt";

if (File.Exists(filePath))
{
    string content = File.ReadAllText(filePath);
    Console.WriteLine("ファイルの中身はこちらです:");
    Console.WriteLine(content);
}
else
{
    Console.WriteLine("まだファイルがありません。");
}

ここで使っているif文とFile.Existsは「ファイルが存在するかどうか」をチェックするためのものです。もしファイルが存在しないのに読み込もうとするとプログラムがエラーで止まってしまうため、確認はとても重要な作業です。これを「例外処理」の基本といいます。

6. IoT開発で役立つデータ保存のテクニック

6. IoT開発で役立つデータ保存のテクニック
6. IoT開発で役立つデータ保存のテクニック

最後に、実際の開発現場で使われる少し便利な方法を紹介します。センサーデータは、カンマで区切ったCSV形式(カンマセパレーテッドバリュー)で保存するのが一般的です。こうすることで、後からExcelで読み込んでグラフ化することが非常に楽になります。また、フォルダのパスをしっかり指定することで、保存場所を自分で管理できるようになります。


using System;
using System.IO;

string time = DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss");
double temperature = 24.8;
string csvLine = $"{time},{temperature}" + Environment.NewLine;

string folderPath = @"C:\IoTData";
string fullPath = Path.Combine(folderPath, "data.csv");

Directory.CreateDirectory(folderPath);
File.AppendAllText(fullPath, csvLine);

このコードでは、現在の日時を取得するDateTime.Nowや、複数のパスを安全に繋げるPath.Combineといった道具を使っています。これらはIoT開発におけるデータ収集において非常に強力なツールとなります。自分だけのログを残せるようになると、アプリを作ることがもっと楽しくなりますよ。

カテゴリの一覧へ
新着記事
New1
C#
C#とは何か?初心者向けにできること・特徴・インストール手順までやさしく解説
New2
C#
C#のメソッドを引数に渡す方法!高階関数の基本を学ぼう
New3
Azure
Azure Front Door Analytics活用|リアルタイム監視とレポートで通信を分析
New4
COBOL
COBOLで数値比較とALPHABETIC・NUMERIC条件をやさしく解説!初心者でも安心ガイド
人気記事
No.1
Java&Spring記事人気No1
C#
C#のWPFとは?XAMLでGUI開発を基礎から完全解説!初心者向けの入門ガイド
No.2
Java&Spring記事人気No2
COBOL
COBOL教育における教材とリソース完全ガイド!初心者でもわかるプログラミング学習の選び方
No.3
Java&Spring記事人気No3
Azure
Azure SQL Database購入モデル比較!vCoreとDTUの違いと選び方を初心者向けに解説
No.4
Java&Spring記事人気No4
C#
C#のLINQでWhere句を使いこなす!初心者でもわかるデータ抽出とフィルタリング
No.5
Java&Spring記事人気No5
COBOL
COBOLのCOPY句の使い方を完全ガイド!初心者でもわかる共通部品の再利用方法
No.6
Java&Spring記事人気No6
COBOL
COBOLの数値データ型「PIC 9」の使い方と注意点をやさしく解説!
No.7
Java&Spring記事人気No7
C#
C#のLINQでFirstとFirstOrDefaultの違いと使い方を完全解説!初心者向けガイド
No.8
Java&Spring記事人気No8
C#
C#のforeachループを完全ガイド!初心者でもわかるコレクション操作の基本