2017-12-06 51 views
0

私のアプリケーションでは、saveURL.txtというプログラムのドキュメントディレクトリにあるテキストファイルにデータを追加しようとしています。そのため、後で呼び出して解析することができます。私はSwift 3テキストファイルへの書き込み

let fileName = "saveURL" 
let DocumentDirURL = try! FileManager.default.url(for: .documentDirectory, in: .userDomainMask, appropriateFor: nil, create: true) 

let fileURL = DocumentDirURL.appendingPathComponent(fileName).appendingPathExtension("txt") 
print("FilePath: \(fileURL.path)") 

let writeString = "Write this text to the fileURL as text in iOS using Swift" 
do { 
    // Write to the file 
    try writeString.write(to: fileURL, atomically: true, encoding: String.Encoding.utf8) 
    print("past try writeString.write") 
} catch let error as NSError { 
    print("Failed writing to URL: \(fileURL), Error: " + error.localizedDescription) 
} 

var readString = "" // Used to store the file contents 
do { 
    // Read the file contents 
    readString = try String(contentsOf: fileURL) 
} catch let error as NSError { 
    print("Failed reading from URL: \(fileURL), Error: " + error.localizedDescription) 
} 
print("File Text: \(readString)") 

いる私のコードを持ってコンソールに表示出力されている

ファイルパス:/ユーザー/マイク/ライブラリ/開発/ CoreSimulator /デバイス/ 752A5025-0AA0-4BE1-B70F-644A904F2D8A /データ/コンテナ/データ/アプリケーション/ 0084AD99-63DB-439F-8427-DDDF161CFAC0 /ドキュメント/ saveURL.txt
過去writeString.write
ファイルのテキストを試してください:使用してiOSの中にテキストとしてfileURLに、このテキストを書くスウィフト

実際に格納されていた出力を表示していますが、実際に追加されたかどうかを確認するためにファイルをチェックすると、まだ空白です。私は素早くファイルが読み込み専用であることをすべて読んだことがありますが、私のプログラムでは動作するが動作していない例も見たことがあります。

+0

あなたが投稿したコードの 'print'ステートメントの実際の出力にあなたの質問を更新してください(コメントを投稿しないでください)。 – rmaddy

+0

*「実際にファイルが追加されたかどうかを確認するためにファイルをチェックすると、まだ空白です」*とはどういう意味ですか?どのようにチェックしていますか?空白は何ですか? – rmaddy

+0

私のプログラムファイルディレクトリ内のsaveURLファイルは、あまりにも明白に書き込まれていても空のテキストファイルです。ファイルをチェックして何かが含まれているかどうかを確認しています。 – Kolorbox

答えて

0

テキストファイルに書き込みURLのコードです。

func writeToFile(urlString: String) 
{ 
    let file = "/saveURL.txt" //this is the file. we will write to and read from it 

     if let dir = NSSearchPathForDirectoriesInDomains(FileManager.SearchPathDirectory.documentDirectory, FileManager.SearchPathDomainMask.allDomainsMask, true).first { 
     let path = dir + file 
     print(path) 
     do { 
      try urlString.write(toFile: path, atomically: false, encoding: String.Encoding.utf8) 
     } 
     catch {/* error handling here */} 
    } 
} 

希望すると、これが役に立ちます。

+0

この関数を実装しました。保存ボタンを押したときに呼び出され、関数に文字列が渡されました。それは正常に呼び出されますが、自分のプログラム内の実際のsaveURL.txtファイルをチェックすると、まだテキストが書き込まれていません。 – Kolorbox

+0

私はこの 'print(path)'を更新しました。そのパスを確認してください。 –

+0

'/ Users/mike/Library/Developer/CoreSimulator/Devices/752A5025-0AA0-4BE1-B70F-644A904F2D8A/data/Containers/Data/Application /A1895394-2AFF-41DE-A174-45F7A8B77258/Documents/saveURL.txt'プリントアウト時に何が表示されるのですか? – Kolorbox

関連する問題