clojure.java.io包能够解决哪些io问题?

网上不少关于clojure的io的例子都喜欢用java代码来表达,难道是clojure本身提供的io不够灵活吗?很有可能是举例的作者没有仔细阅读clojure.java.io的文档。clojure.java.io应该涵盖了95%以上的使用场景,让我们一起来理一理。

可能的场景:

1、你已经有了一个String,想写入到文件中。

(io/copy you-string (io/file "/tmp/xx.xx") :encode "utf-8")

2、你有了一个url,想把内容写入文件中

(io/copy (io/input-stream "http://www.baidu.com") (io/file "c:/tmp.txt"))

如果你注意一下包中的IOFactory,它支持以下对象:

array-of-bytes, array-of-characters, java.io.BufferedInputStream, java.io.BufferedOutputStream, java.io.BufferedReader, java.io.BufferedWriter, java.io.File, java.io.InputStream, java.io.OutputStream, java.io.Reader, java.io.Writer, java.lang.String, java.net.Socket, java.net.URI, java.net.URL, Object

IOFactory通过multimethod,根据不同的参数类型,猜测出最合适的处理方式。一般情况下,你只要按你的理解书写即可,除非结果和你想象的不符,这时才需要仔细分析一下。

比如对于io/reader,

Default implementations are provided for Reader, BufferedReader,

InputStream, File, URI, URL, Socket, byte arrays, character arrays,

and String.

也就是说你可以通过以下方式获取reader。

(io/reader (as-file "c:/xx.xx"))
(io/reader (as-url "http://somulr"))(io/reader "astring")
(io/reader (.getBytes "astring"))
(io/reader [\a \b \c])

总体来说,clojure.java.io已经充分考虑了各种场景,你完全可以用clojure方式来完成io。

转载于:https://my.oschina.net/jianglibo/blog/351362

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Clojure与MariaDB是兼容的,您可以使用Clojure的JDBC库来连接和操作MariaDB数据库。 以下是一些基本的步骤来使用Clojure的JDBC库连接和操作MariaDB数据库: 1. 首先,您需要在项目的依赖中添加`org.mariadb.jdbc/mariadb-java-client`库。例如,使用Leiningen构建的项目,可以在`project.clj`文件中添加以下依赖: ``` [org.mariadb.jdbc/mariadb-java-client "2.7.3"] ``` 2. 在Clojure中,使用JDBC库连接MariaDB数据库需要通过`clojure.java.jdbc`命名空间中的函数来实现。首先,您需要定义一个数据库连接的配置,如下所示: ``` (def db-config {:dbtype "mariadb" :dbname "your_database_name" :user "your_username" :password "your_password" :host "localhost" :port 3306}) ``` 将`your_database_name`、`your_username`和`your_password`替换为您的MariaDB数据库的信息。 3. 接下来,您可以使用`clojure.java.jdbc`库中的函数来连接数据库并执行SQL查询。例如,以下代码查询一个名为`users`的表中的所有数据: ``` (require '[clojure.java.jdbc :as jdbc]) (defn get-all-users [] (jdbc/query db-config ["SELECT * FROM users"])) ``` 您可以根据需要更改SQL查询语句。 4. 您也可以使用`clojure.java.jdbc`库中的函数执行插入、更新和删除等操作。例如,以下代码将一个新用户插入到`users`表中: ``` (defn add-user [name email password] (jdbc/insert! db-config :users {:name name :email email :password password})) ``` 将`name`、`email`和`password`替换为您要插入的新用户的信息。 希望这些信息可以帮助您使用Clojure操作MariaDB数据库!

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值