BinaryWriter クラス
プリミティブ型をバイナリでストリームに書き込みます。特定のエンコーディングの文字列の書き込みをサポートします。
この型のすべてのメンバの一覧については、BinaryWriter メンバ を参照してください。
System.Object
System.IO.BinaryWriter
<Serializable>
Public Class BinaryWriter Implements IDisposable
[C#]
[Serializable]
public class BinaryWriter : IDisposable
[C++]
[Serializable]
public __gc class BinaryWriter : public IDisposable
[JScript]
public
Serializable
class BinaryWriter implements IDisposable
スレッドセーフ
この型の public static (Visual Basicでは Shared) のすべてのメンバは、マルチスレッド操作で安全に使用できます。インスタンスのメンバの場合は、スレッドセーフであるとは限りません。
解説
派生クラスでは、このクラスのメソッドをオーバーライドして固有の文字エンコーディングを指定できます。
その他の一般的な I/O タスクまたは関連する I/O タスクの例を次の表に示します。
実行するタスク | 参考例があるトピック |
---|---|
テキスト ファイルを作成する。 | ファイルへのテキストの書き込み |
テキスト ファイルに書き込む。 | ファイルへのテキストの書き込み |
テキスト ファイルから読み取る。 | ファイルからのテキストの読み取り |
バイナリ ファイルから読み取る。 | 新しく作成したデータ ファイルの読み取りと書き込み |
バイナリ ファイルに書き込む。 | 新しく作成したデータ ファイルの読み取りと書き込み |
使用例
[Visual Basic, C#, C++] アプリケーションの設定をファイルに保存する方法とファイルから取得する方法の例を次に示します。
Imports Microsoft.VisualBasic
Imports System
Imports System.IO
Imports System.Security.Permissions
Public Class Test
Shared Sub Main()
' Load application settings.
Dim appSettings As New AppSettings()
Console.WriteLine("App settings." & vbcrLf & "Aspect " & _
"Ratio: {0}, Lookup directory: {1}," & vbcrLf & "Auto " & _
"save time: {2} minutes, Show status bar: {3}" & vbCrLf, _
New Object(3){appSettings.AspectRatio.ToString(), _
appSettings.LookupDir, _
appSettings.AutoSaveTime.ToString(), _
appSettings.ShowStatusBar.ToString()})
' Change the settings.
appSettings.AspectRatio = 1.250
appSettings.LookupDir = "C:\Temp"
appSettings.AutoSaveTime = 10
appSettings.ShowStatusBar = True
' Save the new settings.
appSettings.Close()
End Sub
End Class
' Store and retrieve application settings.
Public Class AppSettings
Const fileName As String = "AppSettings#@@#.dat"
Dim aspRatio As Single
Dim lkupDir As String
Dim saveTime As Integer
Dim statusBar As Boolean
Property AspectRatio As Single
Get
Return aspRatio
End Get
Set
aspRatio = Value
End Set
End Property
Property LookupDir As String
Get
Return lkupDir
End Get
Set
lkupDir = Value
End Set
End Property
Property AutoSaveTime As Integer
Get
Return saveTime
End Get
Set
saveTime = Value
End Set
End Property
Property ShowStatusBar As Boolean
Get
Return statusBar
End Get
Set
statusBar = Value
End Set
End Property
Sub New()
' Create default application settings.
aspRatio = 1.3333
lkupDir = "C:\AppDirectory"
saveTime = 30
statusBar = False
If File.Exists(fileName) Then
Dim binReader As New BinaryReader( _
File.Open(fileName, FileMode.Open))
Try
' If the file is not empty,
' read the application settings.
If binReader.PeekChar() <> -1 Then
aspRatio = binReader.ReadSingle()
lkupDir = binReader.ReadString()
saveTime = binReader.ReadInt32()
statusBar = binReader.ReadBoolean()
Return
End If
' If the end of the stream is reached before reading
' the four data values, ignore the error and use the
' default settings for the remaining values.
Catch ex As EndOfStreamException
Console.WriteLine("{0} caught and ignored. " & _
"Using default values.", ex.GetType().Name)
Finally
binReader.Close()
End Try
End If
End Sub
' Create a file and store the application settings.
Sub Close()
Dim binWriter As New BinaryWriter( _
File.Open(fileName, FileMode.Create))
Try
binWriter.Write(aspRatio)
binWriter.Write(lkupDir)
binWriter.Write(saveTime)
binWriter.Write(statusBar)
Finally
binWriter.Close()
End Try
End Sub
End Class
[C#]
using System;
using System.IO;
using System.Security.Permissions;
class Test
{
static void Main()
{
// Load application settings.
AppSettings appSettings = new AppSettings();
Console.WriteLine("App settings.\nAspect Ratio: {0}, " +
"Lookup directory: {1},\nAuto save time: {2} minutes, " +
"Show status bar: {3}\n",
new Object[4]{appSettings.AspectRatio.ToString(),
appSettings.LookupDir, appSettings.AutoSaveTime.ToString(),
appSettings.ShowStatusBar.ToString()});
// Change the settings.
appSettings.AspectRatio = 1.250F;
appSettings.LookupDir = @"C:\Temp";
appSettings.AutoSaveTime = 10;
appSettings.ShowStatusBar = true;
// Save the new settings.
appSettings.Close();
}
}
// Store and retrieve application settings.
class AppSettings
{
const string fileName = "AppSettings#@@#.dat";
float aspectRatio;
string lookupDir;
int autoSaveTime;
bool showStatusBar;
public float AspectRatio
{
get{ return aspectRatio; }
set{ aspectRatio = value; }
}
public string LookupDir
{
get{ return lookupDir; }
set{ lookupDir = value; }
}
public int AutoSaveTime
{
get{ return autoSaveTime; }
set{ autoSaveTime = value; }
}
public bool ShowStatusBar
{
get{ return showStatusBar; }
set{ showStatusBar = value; }
}
public AppSettings()
{
// Create default application settings.
aspectRatio = 1.3333F;
lookupDir = @"C:\AppDirectory";
autoSaveTime = 30;
showStatusBar = false;
if(File.Exists(fileName))
{
BinaryReader binReader =
new BinaryReader(File.Open(fileName, FileMode.Open));
try
{
// If the file is not empty,
// read the application settings.
if(binReader.PeekChar() != -1)
{
aspectRatio = binReader.ReadSingle();
lookupDir = binReader.ReadString();
autoSaveTime = binReader.ReadInt32();
showStatusBar = binReader.ReadBoolean();
}
}
// If the end of the stream is reached before reading
// the four data values, ignore the error and use the
// default settings for the remaining values.
catch(EndOfStreamException e)
{
Console.WriteLine("{0} caught and ignored. " +
"Using default values.", e.GetType().Name);
}
finally
{
binReader.Close();
}
}
}
// Create a file and store the application settings.
public void Close()
{
using(BinaryWriter binWriter =
new BinaryWriter(File.Open(fileName, FileMode.Create)))
{
binWriter.Write(aspectRatio);
binWriter.Write(lookupDir);
binWriter.Write(autoSaveTime);
binWriter.Write(showStatusBar);
}
}
}
[C++]
#using <mscorlib.dll>
using namespace System;
using namespace System::IO;
using namespace System::Security::Permissions;
// Store and retrieve application settings.
__gc class AppSettings
{
static String* fileName = "AppSettings#@@#.dat";
float aspectRatio;
String* lookupDir;
int autoSaveTime;
Boolean showStatusBar;
public:
__property float get_AspectRatio()
{ return aspectRatio; }
__property void set_AspectRatio(float value)
{ aspectRatio = value; }
__property String* get_LookupDir()
{ return lookupDir; }
__property void set_LookupDir(String* value)
{ lookupDir = value; }
__property int get_AutoSaveTime()
{ return autoSaveTime; }
__property void set_AutoSaveTime(int value)
{ autoSaveTime = value; }
__property Boolean get_ShowStatusBar()
{ return showStatusBar; }
__property void set_ShowStatusBar(Boolean value)
{ showStatusBar = value; }
AppSettings()
{
// Create default application settings.
aspectRatio = 1.3333F;
lookupDir = "C:\\AppDirectory";
autoSaveTime = 30;
showStatusBar = false;
if(File::Exists(fileName))
{
BinaryReader* binReader =
new BinaryReader(File::Open(fileName, FileMode::Open));
try
{
// If the file is not empty,
// read the application settings.
if(binReader->PeekChar() != -1)
{
aspectRatio = binReader->ReadSingle();
lookupDir = binReader->ReadString();
autoSaveTime = binReader->ReadInt32();
showStatusBar = binReader->ReadBoolean();
return;
}
}
// If the end of the stream is reached before reading
// the four data values, ignore the error and use the
// default settings for the remaining values.
catch(EndOfStreamException* e)
{
Console::WriteLine(S"{0} caught and ignored. "
S"Using default values.", e->GetType()->Name);
}
__finally
{
binReader->Close();
}
}
}
// Create a file and store the application settings.
void Close()
{
BinaryWriter* binWriter =
new BinaryWriter(File::Open(fileName, FileMode::Create));
try
{
binWriter->Write(aspectRatio);
binWriter->Write(lookupDir);
binWriter->Write(autoSaveTime);
binWriter->Write(showStatusBar);
}
__finally
{
binWriter->Close();
}
}
};
void main()
{
// Load application settings.
AppSettings* appSettings = new AppSettings();
Object* someObject[] = {appSettings->AspectRatio.ToString(),
appSettings->LookupDir, appSettings->AutoSaveTime.ToString(),
appSettings->ShowStatusBar.ToString()};
Console::WriteLine(S"App settings.\nAspect Ratio: {0}, "
S"Lookup directory: {1},\nAuto save time: {2} minutes, "
S"Show status bar: {3}\n", someObject);
// Change the settings.
appSettings->AspectRatio = 1.250F;
appSettings->LookupDir = "C:\\Temp";
appSettings->AutoSaveTime = 10;
appSettings->ShowStatusBar = true;
// Save the new settings.
appSettings->Close();
}
[JScript] JScript のサンプルはありません。Visual Basic、C#、および C++ のサンプルを表示するには、このページの左上隅にある言語のフィルタ ボタン をクリックします。
必要条件
名前空間: System.IO
プラットフォーム: Windows 98, Windows NT 4.0, Windows Millennium Edition, Windows 2000, Windows XP Home Edition, Windows XP Professional, Windows Server 2003 ファミリ, .NET Compact Framework - Windows CE .NET
アセンブリ: Mscorlib (Mscorlib.dll 内)
参照
BinaryWriter メンバ | System.IO 名前空間 | Encoding | 入出力操作 | ファイルからのテキストの読み取り | ファイルへのテキストの書き込み | 基本のファイル I/O | 新しく作成したデータ ファイルの読み取りと書き込み