C# 入出力全般処理とtry...catch
1. コンソールへの入出力
入力
//文字列や整数などの入力
Console.ReadLine();
//矢印キーやエスケープキーなどの入力
Console.ReadKey().Key;
出力
//表示して改行
Console.WrteLine();
//表示するだけ
Console.Write();
2. ファイルの操作
2.1 テキストファイル
新規作成
using System.IO; //←これ必要
string filePath = @"~\~";
FileStream fs = File.Create(@"filePath");
fs.Close();
読み込み(一回で全部)
using System.Text; // Encoding.GetEncoding を使用するのに必要
var text = File.ReadAllText(filePath, Encoding.GetEncoding("shift-jis"));
var text = file.ReadToEnd(); // ファイルを読み込む
Console.WriteLine(text); // ファイルを閉じてから読み込んだ値を表示
読み込み(一行ずつ)
using System.Text; // Encoding.GetEncoding を使用するのに必要
var lines = File.ReadAllLines(path, Encoding.GetEncoding("shift-jis"));
foreach (var line in lines)
{
Console.WriteLine(line);
}
書き込み
using System.Text;
// 文字コードにUTF-8を指定する
Encoding ec = Encoding.UTF8;
// 書き込むファイルを指定する
// ※第2引数をtrueにすると追記になります。
StreamWriter sw = new StreamWriter(@"D:¥Test.txt", false, ec);
// テキストを書き込む
sw.WriteLine("みかん");
sw.WriteLine("りんご");
sw.WriteLine("ぶどう");
// Closeする
sw.Close();
指定したファイル名パスのファイルが存在しない場合は、自動で作成されます。
上書きしたい場合は第2引数にfalse、追記したい場合は第2引数にtrueを指定してください。
2.2 Excelファイルの操作
using Microsoft.Office.Interop.Excel;
using System.Runtime.InteropServices;
var excelApplication = new Microsoft.Office.Interop.Excel.Application();
try
{
//Workbooksオブジェクトの作成
Workbooks workbooks = excelApplication.Workbooks;
//操作中のエクセルを表示したいときにTrueにする
excelApplication.Visible = true;
try
{
//エクセルファイルの指定
Workbook workbook = workbooks.Open(["エクセルファイルのパス"]);
try
{
//シート一覧の取得
Sheets worksheets = workbook.Sheets;
try
{
//シートの指定
Worksheet worksheet = worksheets["シート名"];
try
{
//シート内のセルを取得
Microsoft.Office.Interop.Excel.Range usedRange = worksheet.Cells;
try
{
//A1セルを取得
var cell = usedRange[1, 1];
try
{
//セルの値を設定
cell.Value2 = "Test";
//エクセルファイルの保存
workbook.Save();
}
finally { Marshal.ReleaseComObject(cell); }
}
finally { Marshal.ReleaseComObject(usedRange); }
}
finally { Marshal.ReleaseComObject(worksheet); }
}
finally { Marshal.ReleaseComObject(worksheets); }
}
finally
{
if (workbook != null)
{
//ワークブックを閉じる
workbook.Close(false);
}
Marshal.ReleaseComObject(workbook);
}
}
finally { Marshal.ReleaseComObject(workbooks); }
}
finally
{
if (excelApplication != null)
{
//エクセルを閉じる
excelApplication.Quit();
}
Marshal.ReleaseComObject(excelApplication);
}
using System.Runtime.InteropServices;
using Microsoft.Office.Interop.Excel;
var excelApplication = new Microsoft.Office.Interop.Excel.Application();
try
{
Workbooks workbooks = excelApplication.Workbooks;
try
{
Workbook workbook = workbooks.Open("d:\\Book1.xlsx");
try
{
Sheets worksheets = workbook.Sheets;
try
{
Worksheet worksheet = worksheets[1];
try
{
// 使用範囲を一括で二次元配列にコピー
Object[,] rangeArray;
Range usedRange = worksheet.UsedRange;
try
{
rangeArray = usedRange.Value;
}
finally { Marshal.ReleaseComObject(usedRange); }
// 二次元配列に対してループを回す
int lastRow = rangeArray.GetLength(0);
for (int i = 0; i < lastRow; i++)
{
Console.WriteLine(rangeArray[i, 0]);
}
}
finally { Marshal.ReleaseComObject(worksheet); }
}
finally { Marshal.ReleaseComObject(worksheets); }
}
finally
{
if (workbook != null)
{
workbook.Close(false);
}
Marshal.ReleaseComObject(workbook);
}
}
finally { Marshal.ReleaseComObject(workbooks); }
}
finally
{
if (excelApplication != null)
{
excelApplication.Quit();
}
Marshal.ReleaseComObject(excelApplication);
}
3. データベースへの入出力
入力
出力
4. エラーハンドリング
この記事が気に入ったらサポートをしてみませんか?