2016-01-27 64 views
3

我做了以下有沒有更好的辦法做到這一點?:寫JSON到文件爲文本藥劑

File.write("../hello", Poison.encode!(some_stuff)) 
+0

我沒有看到你有什麼問題。對我來說看起來很好。這種寫入文件的方法有什麼困擾嗎? –

+0

定義「更好」?更好的是什麼意思?更簡單?我懷疑你會找到更簡單的代碼。更快?也許,除非你談論算法的複雜性(Big-O就是這樣),否則在所有情況下都不會顯着更快。較少的代碼?我再次懷疑你會發現一個比這更小的代碼例子。也許你應該清楚你的解決方案中缺乏什麼? –

+1

@OnorioCatenacci我的意思是在最普通的意義上更好。感謝您詳細闡述您的評論。我很難找到答案,當我這樣做時,我不確定是否有「更好」的解決方案。 – jmunsch

回答

10

你缺少第三個參數,模式選項。像這樣的東西會工作:

File.write("../hello", Poison.encode!(some_stuff), [:binary]) 

除了缺少的參數,你有什麼是代碼易於理解線。如果使用encode!,編碼失敗將會引發異常。如果要確保文件寫入成功,而不檢查File.write/3的返回值,則應使用File.write!/3。使用File.write!/3更符合Erlang的「讓它崩潰」的理念(http://learnyousomeerlang.com/errors-and-exceptions)。雖然這一切都取決於這條線的背景......

+0

是的。謝謝。我直接在repl中使用它來做一些調試。所以對編碼是否起作用感興趣。 – jmunsch