0

この値を2つの別々のテキストファイルに書き込むことはできません。1つだけに書き込みます。

Public Class frmIceCream
Dim tw As System.IO.TextWriter

次に、フォームロードで次のようになります。

tw = New System.IO.StreamWriter("C:\Users\F\Documents\Temp junk\sundae.txt", True)
tw.WriteLine("5")

tw = New System.IO.StreamWriter("C:\Users\F\Documents\Temp junk\banana.txt", True)
tw.WriteLine("5")
4

3 に答える 3

2

可能な限り短いコードスニペットについては、File.WriteAllTextを使用できます。

File.WriteAllText("C:\Users\F\Documents\Temp junk\sundae.txt", "5")
File.WriteAllText("C:\Users\F\Documents\Temp junk\banana.txt", "5")

アプローチを使い続けたい場合は、通常、ファイルをできるだけ短く開いたままにしておくことをお勧めします。Using私はあなたのファイル操作をブロックにラップします、この方法StreamWriterは自動的に処分されます(そして閉じられます):

Using tw As New System.IO.StreamWriter("C:\Users\F\Documents\Temp junk\sundae.txt", True)
  tw.WriteLine("5")
End Using
Using tw As New System.IO.StreamWriter("C:\Users\F\Documents\Temp junk\banana.txt", True)
  tw.WriteLine("5")
End Using

ここで、技術的に異なるtwオブジェクトを使用している場合でも、コードが読みやすくなる場合は、同じ名前を維持できることに注意してください。

于 2013-01-29T00:26:18.600 に答える
2

他のファイルを閉じるまで、変数を再利用することはできません。おそらく、2 つのファイルを開く方が簡単です。これを試して:

Dim tw1 as System.IO.TextWriter, tw2 as System.IO.TextWriter

tw1 = New System.IO.StreamWriter("C:\Users\F\Documents\Temp junk\sundae.txt", True) 
tw1.WriteLine("5")
tw2 = New System.IO.StreamWriter("C:\Users\F\Documents\Temp junk\banana.txt", True)
tw2.WriteLine("5")
于 2013-01-29T00:27:23.427 に答える
0

おそらく対処している問題は、最初のテキスト ファイルが空であることです。

ハードドライブへの書き込みはコストがかかるため、TextWriter は、ある程度の量のテキストを保持するバッファーを使用してから、一度にすべて書き込みます。tw.Flush()を使用してバッファに残っているものを書き込んでから、 を使用tw.Close()してリソースを解放してみてください。

これはうまくいくはずです:

tw = New System.IO.StreamWriter("C:\Users\F\Documents\Temp junk\sundae.txt", True)
tw.WriteLine("5")
tw.Flush()
tw.Close()

tw = New System.IO.StreamWriter("C:\Users\F\Documents\Temp junk\banana.txt", True)
tw.WriteLine("5")
tw.Flush()
tw.Close()
于 2013-01-29T01:02:16.223 に答える