2017-04-02 36 views
0

文字列をバイナリファイルに書き込むにはどうすればよいですか? Swift 3バイナリファイルに文字列を書き込む

  string = String(data: data, encoding: String.Encoding.utf8)!; 
      var buffer = [UInt8](string.utf8); 

      var f = fopen("newdata.dat", "w"); 
      let success = fwrite(buffer, MemoryLayout<UInt8>.size, buffer.count, f); 
      fsync(fileno(f)); 
      fclose(f); 
      print("success: \(success)"); 
+0

恐らく[this](http://stackoverflow.com/a/33814414/4041795)あなたはおそらくお手伝いしますか? – Montmons

+1

'data'をディスクに直接書き込むのはどうですか? – vadian

+0

@ SB87ありがとう、残念ながら私は質問を投稿する前にこれを試しました。また、私はplistファイルに興味がないと指定しました。 – user3390652

答えて

0

は、あなたがデータとの差異を明確です..私はplistファイルに興味を持っていないです..

を私は多くのことを試してみましたが、毎回、私のファイルはプレーンテキストファイルとして表示され、テキスト?プレーンテキストファイルは、テキストエディタで解釈されたときにテキストとして表示されるデータです。 0と1、または数字の配列(おそらく16進数)が見込まれますか?または、Word文書をプレーンテキストとして開こうとすると表示される文字の混乱の種類ですか?そうであれば、アプリケーションでファイルを開く必要がありますMore Info

またはDIYオプションはバイトバッファを表示することですが、テキストエディタでバイトを表示する唯一の方法は、これは元のファイルの値を表しますが、皮肉なことにファイルそのものではありません(意味がある場合)。

+0

上記の私のコメントを参照してください:) – user3390652

+1

ファイルがプレーンテキストファイルとして表示されるように記述すると、そのファイルをどのように表示していますか、どのように読み込んでいますか?プレーンテキストエンコーディングのタイプであろうとなかろうと、どのファイルもデータとしてロードすることができます。ファイルの保存方法とは関係ありません。ディスクに直接保存されたプレーンテキストファイルは、Dataクラスで保存された同じファイルまたは "バイナリ"ファイルと同じです。すべてのファイルはバイナリ形式で保存されます。私たちがいくつかのドキュメントバイナリを呼び出す理由は、複雑なエンコーディングのためにテキストエディタで人間が読める形式で解釈できないためです。 – sketchyTech

+1

あなたの答えは私のコードに何が間違っているかを理解するのに役立ちました。私は今、私の期待した結果を得ることができます。ありがとう – user3390652

関連する問題