C# と VB.NET の質問掲示板

ASP.NET、C++/CLI、Java 何でもどうぞ

C# と VB.NET の入門サイト

テキストファイルの後にバイナリファイルを書き込む方法

[トピック内 7 記事 (1 - 7 表示)]  << 0 >>

■83699 / inTopicNo.1)  テキストファイルの後にバイナリファイルを書き込む方法
  
□投稿者/ バカボドン (26回)-(2017/04/03(Mon) 20:00:33)

分類:[.NET 全般] 


以下のように1つのファイルの最初にテキストを書き込み、
途中からバイナリデータを書き込むコードを書きました。

しかし、この方法だと、一度テキストファイルを書き込んだ後
再度、そのファイルを読み込むかたちになっており
無駄なオーバーヘッドが生じてしまいます。

テキストデータをバイナリとしてまとめて出力したいのですが
どのようにすれば良いですか?


        Dim a(xmax, ymax) As Double
        Dim b(num) As String

        Using writer As New StreamWriter(Path, False, Encoding.Default)

            For i = 1 To num

                writer.WriteLine(b(i))

            Next

        End Using



        Using stream As Stream = New FileStream(Path, FileMode.Append, FileAccess.Write, FileShare.Read, 1024 * 64, False)
            Using writer As New BinaryWriter(stream)

                For Y As Integer = 1 To ymax
                    For X As Integer = 1 To xmax

                        writer.Write((a(X, Y)))

                    Next X

                Next Y

            End Using
        End Using

引用返信 編集キー/
■83700 / inTopicNo.2)  Re[1]: テキストファイルの後にバイナリファイルを書き込む方法
□投稿者/ 774RR (504回)-(2017/04/03(Mon) 20:16:59)
Append のとき既存ファイルを読んでいたりはしないので問題ない。
もし読んでいるとしたら「あなたのプログラムが」ではなくて「ウイルス対策ソフトが」読んでるだろう。
作業フォルダをリアルタイムスキャンの対象外にするとかそっちの対策を考えたほうが建設的だと思う。

引用返信 編集キー/
■83701 / inTopicNo.3)  Re[2]: テキストファイルの後にバイナリファイルを書き込む方法
□投稿者/ バカボドン (27回)-(2017/04/03(Mon) 20:19:04)
そういう心配ではなく、
最初に出力したテキストファイルを再度読み込んで
ファイルの最後までシークして
書き込みを行っているわけなので、
一度にキャッシュから書き込みを行いたいのですが・・・
 
引用返信 編集キー/
■83702 / inTopicNo.4)  Re[3]: テキストファイルの後にバイナリファイルを書き込む方法
□投稿者/ もりお (40回)-(2017/04/03(Mon) 20:33:21)
No83701 (バカボドン さん) に返信

FileStreamをパカっと開けて文字列を書き込んでフラッシュして
バイナリをドバっと書き込む感じでいけないですかね

Using Stream As New System.IO.FileStream("test.txt", System.IO.FileMode.Create)
    Dim Writer = New IO.StreamWriter(Stream, Text.Encoding.UTF8)
    Writer.WriteLine("文字列")
    Writer.Flush()

    Dim Binary = Text.Encoding.UTF8.GetBytes("バイナリ")
    Stream.Write(Binary, 0, Binary.Length)
End Using

引用返信 編集キー/
■83703 / inTopicNo.5)  Re[4]: テキストファイルの後にバイナリファイルを書き込む方法
□投稿者/ バカボドン (28回)-(2017/04/03(Mon) 20:42:01)
どうもありがとうございます。

うまくいきました
 
引用返信 編集キー/
■83704 / inTopicNo.6)  Re[5]: テキストファイルの後にバイナリファイルを書き込む方法
□投稿者/ furu (89回)-(2017/04/03(Mon) 21:01:41)
解決済みになっていないので
774RRさんに一票

Appendの時、最後のブロックは読む場合はあるが
ファイル全体を読むことはしません。
引用返信 編集キー/
■83705 / inTopicNo.7)  Re[6]: テキストファイルの後にバイナリファイルを書き込む方法
□投稿者/ バカボドン (29回)-(2017/04/03(Mon) 21:21:35)
どうも参考になりました
 
解決済み
引用返信 編集キー/

このトピックをツリーで一括表示


トピック内ページ移動 / << 0 >>

このトピックに書きこむ