*in*
をバインドして、「実際の」入力ストリームではなく文字列からストリームを読み込みたいとします。これはどうすればいいですか?ファイルまたはURLの代わりに文字列から読み込む入力ストリームを作成するには
10
A
答えて
14
チェックアウトwith-in-str
:
;; Given you have a function that will read from *in*
(defn prompt [question]
(println question)
(read-line))
user=> (prompt "How old are you?")
How old are you?
34 ; <== This is what you enter
"34" ; <== This is returned by the function
;; You can now simulate entering your age at the prompt by using with-in-str
user=> (with-in-str "34" (prompt "How old are you?"))
How old are you?
"34" ; <== The function now returns immediately
3
ここに私がやってしまった何のためのサンプルコードです:
http://clojure.github.com/clojure/clojure.core-api.html#clojure.core/with-in-str
ClojureDocsは、その使用例があります。このアイデアは、インストリームとアウトストリームをとるシンプルなサーバーの読み取り/印刷ループ機能です。私の問題は、そのような関数のテストストリームを生成する方法であり、文字列関数が行うと考えました。代わりに、これは私が必要なものです:
(ns test
(:use [clojure.java.io :only [reader writer]]))
(def prompt ">")
(defn test-client [in out]
(binding [*in* (reader in)
*out* (writer out)]
(print prompt) (flush)
(loop [input (read-line)]
(when input
(println (str "OUT:" input))
(print prompt) (flush)
(if (not= input "exit\n") (recur (read-line)))
))))
(def client-stream (java.io.PipedWriter.))
(def r (java.io.BufferedReader. (java.io.PipedReader. client-stream)))
(doto (Thread. #(do (test-client r *out*))) .start)
(.write client-stream "test\n")
関連する問題
- 1. springバッチのファイルの代わりにストリームからの読み込みitemReader
- 2. ファイルを文字列に読み込む
- 3. ファイルの代わりに文字列に書き込むXmlWriter
- 4. sqliteからdatetimeをPythonの文字列の代わりにdatetimeとして読み込むには?
- 5. ファイルの代わりにストリームからjt400 xpcmlを読み込んでProgramCallDocumentを作成する
- 6. .txtファイルから読み込んだ文字列を配列に入力する
- 7. C - ファイルからテキスト/文章を文字列に読み込む
- 8. C:読み込み入力文字列を読み込み、文字配列
- 9. ロードXML - 代わりに、URLからXMLを読み込むのiPhone
- 10. php://入力ストリームをバッファから読み込むことはできますか?
- 11. C++で入力ファイルを文字列配列に読み込むにはどうすればよいですか?
- 12. SQLから読み込むと文字列リストに値が入りません
- 13. Groovyのファイルを文字列に読み込む方法は?
- 14. デザイン時にクラスライブラリから設定ファイルを読み込む代わりに?
- 15. ファイルからXML文字列を文字列に読み込むにはどうすればよいですか?
- 16. JavascriptはURLから文字列にHTMLを読み込みます
- 17. アンドロイドボックスのHDMI入力から生ストリームを読み込みます
- 18. 大きなファイルを入力ストリームとして読み込むには
- 19. 代表入力からjson文字列を作成する
- 20. txtファイルを文字列に読み込む方法は?
- 21. 文字列を読み込むよりも速く読み込みますか?
- 22. ストリームからCrystal Report 9.0ファイルを読み込む方法はありますか?
- 23. ルビからUSB入力ストリームを読み込みます。
- 24. ユーザー入力の文字で始まるリストから行を読み込む?
- 25. 文字列配列からXMLをVBAに読み込む
- 26. androidの文字列から文字を読み込む方法
- 27. 文字をC++の文字列から読み込む
- 28. 入力ストリームからアンドロイドでファイルに書き込みますか?
- 29. std :: vector(または他のシーケンス)から読み込むためのストリーム構文?
- 30. ストリームを含むファイルを読み込む
ありがとう。それは正しい答えですが、本当に必要となったのは少し違いました。以下の答えを見てください。 – zippy
あなたが提供したリンクにもリンクがないので、例を追加してください。 –
Clojuredocsには次のような例があります。http://clojuredocs.org/clojure_core/clojure.core/with-in-str – sanityinc