Clojure在线运行

版本:
运行结果
教程手册
代码仓库
极速运行
交互输入
极速运行模式,更高效的运行,点击编辑器上方的运行按钮即刻体验吧。
以下是用户最新保存的代码
[更多]
显示目录

文件I / O



文件I / O

Clojure在使用I / O时提供了许多辅助方法,它能帮助我们更方便的操作文件:

  • 读取文件
  • 写入文件
  • 查看文件是文件还是目录

让我们来探讨Clojure提供的一些文件操作。

作为整个字符串读取文件的内容

如果要以文件的形式获取文件的全部内容,可以使用clojure.core.slurp方法。 slurp命令打开文件上的读取器并读取其所有内容,返回一个字符串。

(ns clojure.examples.hello
   (:gen-class))

;; This program displays Hello World
(defn Example []
   (def string1 (slurp "Example.txt"))
   (println string1))
(Example)

如果文件包含以下行,它们将打印:

line : Example1
line : Example2

一次读取一行文件的内容

如果想要以字符串的形式获得文件的整个内容,一次一行,可以使用clojure.java.io/reader方法。 clojure.java.io/reader类创建一个阅读器缓冲区,用于读取文件的每一行。

下面是一个示例,说明如何做到这一点:

(ns clojure.examples.hello
   (:gen-class))

;; This program displays Hello World
(defn Example []
   (with-open [rdr (clojure.java.io/reader "Example.txt")]
   (reduce conj [] (line-seq rdr))))
(Example)

如果文件包含以下行,它们将打印:

line : Example1
line : Example2

最终输出结果为:

["line : Example1" "line : Example2"]

写入"文件"

如果要写入“到”文件,可以使用clojure.core.spit命令将整个字符串打入文件。 spit命令与slurp方法相反。 此方法以作者身份打开文件,写入内容,然后关闭文件。

下面是一个例子:

(ns clojure.examples.hello
   (:gen-class))

;; This program displays Hello World
(defn Example []
   (spit "Example.txt"
      "This is a string"))

在上面的例子中,如果你查看Example.txt文件,你会看到文件内容为"This is a string"

一次写入一行文件

如果你想一次写一行文件,你可以使用clojure.java.io.writer类。 clojure.java.io.writer类用于创建写入器流,其中数据的字节被馈送到流中并且随后被馈送到文件中。

以下是显示如何使用spit命令的示例。

(ns clojure.examples.hello
   (:gen-class))

;; This program displays Hello World
(defn Example []
   (with-open [w (clojure.java.io/writer "Example.txt" :append true)]
      (.write w (str "hello" "world"))))
(Example)

当执行上面的代码时,“hello world”行将出现在Example.txt文件中。 append:true选项是将数据附加到文件。 如果未指定此选项,则每当将数据写入文件时,文件将被覆盖。

检查文件是否存在

要检查文件是否存在,可以使用clojure.java.io.file类来检查文件是否存在。 下面是一个例子,说明如何完成这个:

(ns clojure.examples.hello
   (:gen-class))

;; This program displays Hello World
(defn Example []
   (println (.exists (clojure.java.io/file "Example.txt"))))
(Example)

如果文件Example.txt存在,输出将为true。

从控制台读取

要从控制台读取数据,可以使用read-line语句。 下面是一个示例,显示如何使用。

如果在REPL窗口中输入(read-line)命令,您将有机会在控制台窗口中输入一些输入。

user->(read-line)
Hello World

以上示例将输出以下结果:

“Hello World”

由JSRUN为你提供的Clojure在线运行、在线编译工具
        JSRUN提供的Clojure在线运行,Clojure 在线运行工具,基于linux操作系统环境提供线上编译和线上运行,具有运行快速,运行结果与常用开发、生产环境保持一致的特点。

title

使用此草稿 删除草稿

注册登录后可减少验证码的弹出,点击前往 注册 | 登录

皮肤:

运行模式:

嵌入代码 iframe嵌入: