0

私の考えは、StreamReaderクラスとStreamWriterクラスをカプセル化することで、私の生活を少し楽にすることです。ここでの目標は、StreamWriter / Readerタイプのオブジェクトをインスタンス化することなく、ファイルからの書き込みと読み取りを呼び出すことができる静的メソッドをこのクラスに提供させることです。等々。

これまでのところ、クラスには次のコードがあります。

Option Strict On

    Imports System.IO
    Imports System.IO.StreamReader 
    Imports System.IO.StreamWriter 



    Public Class ReadWrite
        Enum WriteType
            Append = 0
            WriteLine = 1
            Write = 2
        End Enum

        Enum ReadType
            Readline = 0
            Read = 1
        End Enum


        Shared Function Write (ByVal FilePath As String, ByVal _WriteType As WriteType, ByVal Content As String) As Boolean 

             Select Case _WriteType
                Case WriteType.Append
                    Using _append As StreamWriter = New StreamWriter(FilePath,True)
                        _append.WriteLine (Content)
                    End Using
                Case WriteType.Write 
                    Using _write As StreamWriter = New StreamWriter(FilePath, False)
                        _write.Write (Content)
                    End Using
                Case WriteType.WriteLine 
                      Using _writeline As StreamWriter = New StreamWriter(FilePath, False)
                        _writeline.Writeline (Content)
                    End Using
             End Select

            Return false
        End Function

         Shared Function Read (ByVal FilePath As String, ByVal _ReadType As ReadType) As Boolean 

             Select Case _ReadType
                Case ReadType.ReadLine
                Case ReadType.Read 
             End Select

            Return false
        End Function
    End Class

質問: これはそのようなタスクを達成するための良い方法ですか?コードの再利用性と単純さを維持しながら、良い結果をもたらすために使用できるいくつかの手法は何ですか。私の目標は、これを他のアプリケーションで簡単に使用できるように十分に柔軟にすることです。

ありがとうございました!

4

2 に答える 2

2

System.IO.Fileこの機能の多くは、クラスを介してすでに提供されています。

于 2012-08-11T11:48:07.967 に答える
1

一般的に、あなたの生活を楽にするための小さなヘルパーメソッドを書くことには何の問題もありません。しかし、残念ながら、あなたは本当に悪い例を選びました。

ここで問題になるのは、ファイルの読み取りまたは書き込みを行うデータのほんの少しごとにファイルを開いたり閉じたりすることです。ファイルを開くことは費用のかかる操作であり、最も一般的なハードウェアでは約50ミリ秒かかります。また、ファイルを閉じることで、別のプロセスにファイルを開く機会を与えるため、ランダムに失敗する可能性があります。ロックアウトされる可能性がありますが、次の読み取り/書き込みは「アクセス拒否」例外で簡単に失敗する可能性があります。非常にランダムで、表示できない別のプロセスが原因であるため、デバッグできません。

簡単な回避策は、ヘルパーメソッドに文字列ではなくTextReaderまたはTextWriterの引数タイプを与えることです。または、拡張メソッドを利用します。

于 2012-08-11T13:29:48.320 に答える