<このサンプルの概要>
ファイルをいろんな方法で書込むサンプルです。いろんな方法とは以下の通りです。
1.文字コード(SJIS,JIS,EUC,UNICODE,UTF7,UTF8)を指定してテキスト形式でファイルを書込む
(1)ファイル全部を一括で(一気に)書込む
(2)ファイルを一行ごとに書込む
(3)ファイルを一文字ごとに書込む
2.バイナリ形式でファイルで書込む
(1)ファイル全部を一括で(一気に)書込む
(2)ファイルを一バイトごとに書込む
文字コードを指定してテキスト形式でファイルを書込む(全部一気に書込む)
文字コードを指定してテキスト形式でファイルを書込む(一行ずつ書込む)
文字コードを指定してテキスト形式でファイルを書込む(一文字ずつ書込む)
バイナリ形式でファイルで読込む(全部一気に書込む)
バイナリ形式でファイルで読込む(一バイトずつ書込む)
ファイル入力の方法のサンプルはこちらです。
ファイル入力方法のいろいろ(C#.NET)
C#.NETのサンプルはこちらです。
ファイル出力方法のいろいろ(VB.NET)
文字コード関係のその他のツールやサンプルはこちらです。
文字コード変換/文字コード判定
/// <summary>
/// テキストファイル出力(ファイル全部を一括で書込む)
/// </summary>
/// <param name="fpath">ファイルPATH</param>
/// <param name="cname">文字コード名</param>
/// <param name="dt">出力文字列データ</param>
/// <主な文字コード名>
/// SJIS="SHIFT-JIS"
/// JIS="ISO-2022-JP"
/// EUC="EUC-JP"
/// UNICODE="UNICODE"
/// UTF7="UTF-7"
/// UTF8="UTF-8"
public void WriteText_A(String fpath, String cname, String dt)
{
System.IO.StreamWriter sw = null;
try
{
// BOM無しエンコーディング作成
System.Text.Encoding enc =
System.Text.Encoding.GetEncoding(cname);
if( cname == "UTF-8" ){
// BOM無し
enc = new System.Text.UTF8Encoding(false);
}
else if (cname == "UNICODE")
{
// BOM無し(リトルエンディアン)
enc = new System.Text.UnicodeEncoding(false, false);
}
sw = new System.IO.StreamWriter(fpath, false, enc);
sw.Write(dt);
}
catch (Exception ex)
{
throw ex;
}
finally
{
if (sw != null) sw.Close();
}
}
/// <summary>
/// テキストファイル出力(ファイルを一行ずつ書込む)
/// </summary>
/// <param name="fpath">ファイルPATH</param>
/// <param name="cname">文字コード名</param>
/// <param name="dt">出力文字列データ</param>
/// <主な文字コード名>
/// SJIS="SHIFT-JIS"
/// JIS="ISO-2022-JP"
/// EUC="EUC-JP"
/// UNICODE="UNICODE"
/// UTF7="UTF-7"
/// UTF8="UTF-8"
public void WriteText_L(String fpath, String cname, String dt)
{
System.IO.StreamWriter sw = null;
try
{
// BOM無しエンコーディング作成
System.Text.Encoding enc =
System.Text.Encoding.GetEncoding(cname);
if (cname == "UTF-8")
{
// BOM無し
enc = new System.Text.UTF8Encoding(false);
}
else if (cname == "UNICODE")
{
// BOM無し(リトルエンディアン)
enc = new System.Text.UnicodeEncoding(false, false);
}
sw = new System.IO.StreamWriter(fpath, false, enc);
// 一行ずつ書込むサンプルなので
// とりあえず改行で分割して一行ずつ出力---
dt = dt.Replace("\r\n", "\n");
String[] ln = dt.Split('\n');
// ---------------------------------------
for (int i = 0; i <= ln.GetLength(0) - 1; i++)
{
sw.WriteLine(ln[i]);
}
}
catch (Exception ex)
{
throw ex;
}
finally
{
if (sw != null) sw.Close();
}
}
/// <summary>
/// テキストファイル出力(ファイルを一文字ずつ書込む)
/// </summary>
/// <param name="fpath">ファイルPATH</param>
/// <param name="cname">文字コード名</param>
/// <param name="dt">出力文字列データ</param>
/// <主な文字コード名>
/// SJIS="SHIFT-JIS"
/// JIS="ISO-2022-JP"
/// EUC="EUC-JP"
/// UNICODE="UNICODE"
/// UTF7="UTF-7"
/// UTF8="UTF-8"
public void WriteText_C(String fpath, String cname, String dt)
{
System.IO.StreamWriter sw = null;
try
{
// BOM無しエンコーディング作成
System.Text.Encoding enc =
System.Text.Encoding.GetEncoding(cname);
if (cname == "UTF-8")
{
// BOM無し
enc = new System.Text.UTF8Encoding(false);
}
else if (cname == "UNICODE")
{
// BOM無し(リトルエンディアン)
enc = new System.Text.UnicodeEncoding(false, false);
}
sw = new System.IO.StreamWriter(fpath, false, enc);
for (int i = 0; i <= dt.Length - 1; i++)
{
sw.Write(dt.Substring(i, 1));
}
}
catch (Exception ex)
{
throw ex;
}
finally
{
if (sw != null) sw.Close();
}
}
/// <summary>
/// バイナリファイル出力(ファイル全部を一括で書込む)
/// </summary>
/// <param name="fpath">ファイルPATH</param>
/// <param name="dt">出力バイナリデータ</param>
public void WriteBinary_A(String fpath, Byte[] dt)
{
System.IO.Stream sw = null;
System.IO.BinaryWriter bw = null;
try
{
sw = System.IO.File.Open(fpath,
System.IO.FileMode.Create,
System.IO.FileAccess.Write);
bw = new System.IO.BinaryWriter(sw);
bw.Write(dt);
}
catch (Exception ex)
{
throw ex;
}
finally
{
if (bw != null) bw.Close();
if (sw != null) sw.Close();
}
}
/// <summary>
/// バイナリファイル出力(ファイルを一バイトずつ書込む)
/// </summary>
/// <param name="fpath">ファイルPATH</param>
/// <param name="dt">出力バイナリデータ</param>
public void WriteBinary_B(String fpath, Byte[] dt)
{
System.IO.Stream sw = null;
System.IO.BinaryWriter bw = null;
try
{
sw = System.IO.File.Open(fpath,
System.IO.FileMode.Create,
System.IO.FileAccess.Write);
bw = new System.IO.BinaryWriter(sw);
for(int i = 0 ;i<= dt.GetLength(0) - 1;i++){
bw.Write(dt[i]);
}
}
catch (Exception ex)
{
throw ex;
}
finally
{
if (bw != null) bw.Close();
if (sw != null) sw.Close();
}
}
|
|