次の方法で共有


Stream.Seek メソッド

派生クラスでオーバーライドされた場合は、現在のストリーム内の位置を設定します。

Public MustOverride Function Seek( _
   ByVal offset As Long, _   ByVal origin As SeekOrigin _) As Long
[C#]
public abstract long Seek(longoffset,SeekOriginorigin);
[C++]
public: virtual __int64 Seek(__int64offset,SeekOriginorigin) = 0;
[JScript]
public abstract function Seek(
   offset : long,origin : SeekOrigin) : long;

パラメータ

  • offset
    origin パラメータからのバイト オフセット。
  • origin
    新しい位置を取得するために使用する参照ポイントを示す SeekOrigin 型の値。

戻り値

現在のストリーム内の新しい位置。

例外

例外の種類 条件
IOException I/O エラーが発生しました。
NotSupportedException ストリームがシークをサポートしていません。たとえば、ストリームがパイプまたはコンソール出力によって生成された可能性があります。
ObjectDisposedException ストリームが閉じられた後でメソッドが呼び出されました。

解説

ファイルの作成およびテキストのファイルへの書き込みの例については、「 ファイルへのテキストの書き込み 」を参照してください。ファイルからのテキストの読み取りの例については、「 ファイルからのテキストの読み取り 」を参照してください。バイナリ ファイルの読み取りおよび書き込みの例については、「 新しく作成したデータ ファイルの読み取りと書き込み 」を参照してください。

現在のインスタンスがシークをサポートしているかどうかを判断するには、 CanSeek プロパティを使用します。

offset が負の値の場合は、 origin で指定した位置から offset で指定したバイト数だけさかのぼった位置が新しい位置になります。 offset が 0 の場合は、 origin で指定した位置が新しい位置になります。 offset が正の値の場合は、 origin で指定した位置から offset で指定したバイト数だけ進んだ位置が新しい位置になります。

上記の機能を提供するには、シークをサポートする Stream の派生クラスでこのメソッドをオーバーライドする必要があります。

ストリーム長を超えた位置へのシークがサポートされています。

使用例

[Visual Basic, C#, C++] BaseStream および SeekSeekOrigin を使用して、基になるストリームのファイル ポインタをストリームの末尾に設定する方法を次の例に示します。既定では、現在のディレクトリに log.txt ファイルが作成されます。

 
Imports System
Imports System.IO

Public Class Test
    Public Shared Sub Main()
        Dim fs As New FileStream("log.txt", FileMode.OpenOrCreate, FileAccess.Read)
        ' Create a character reader.
        Dim w As New StreamReader(fs)
        ' Set the StreamReader file pointer to the end.
        w.BaseStream.Seek(0, SeekOrigin.End)
    End Sub
End Class

[C#] 
using System;
using System.IO;

public class Test
{
    public static void Main()
    {
        FileStream fs = new FileStream("log.txt", FileMode.OpenOrCreate,
            FileAccess.Read);
        // Create a character reader.
        StreamReader w = new StreamReader(fs);
        // Set the StreamReader file pointer to the end.
        w.BaseStream.Seek(0, SeekOrigin.End);
    }
}

[C++] 
#using <mscorlib.dll>
using namespace System;
using namespace System::IO;

int main()
{
    FileStream* fs = new FileStream(S"log.txt", FileMode::OpenOrCreate,
        FileAccess::Read);
    // Create a character reader.
    StreamReader* w = new StreamReader(fs);
    // Set the StreamReader file pointer to the end.
    w->BaseStream->Seek(0, SeekOrigin::End);
}

[JScript] JScript のサンプルはありません。Visual Basic、C#、および C++ のサンプルを表示するには、このページの左上隅にある言語のフィルタ ボタン 言語のフィルタ をクリックします。

必要条件

プラットフォーム: 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, Common Language Infrastructure (CLI) Standard

参照

Stream クラス | Stream メンバ | System.IO 名前空間 | 入出力操作 | ファイルからのテキストの読み取り | ファイルへのテキストの書き込み