Scala io操作

1. 读文件

scala特有的是scala.io.Source,例如: 

import scala.io._ 

Source.fromFile(“cn.scala”,”utf8”).mkString

逐行读文件内容: 

Source.fromFile(new java.io.File(“cn.scala”)).getLines().foreach(println)

2. 写文件

import java.io., java.nio.channels., java.nio._ 

// 写文件 

val f = new FileOutputStream(“o.txt”).getChannel 

f write ByteBuffer.wrap(“a little bit long …”.getBytes) 

f close

或者:

var out = new java.io.FileWriter(“./out.txt”) // FileWriter(“./out.txt”, true) 为追加模式 

out.write(“hello\n”) 

out.close

3. 复制文件

val in = new FileInputStream(“in”).getChannel 

val out = new FileOutputStream(“out”).getChannel 

in.transferTo (0, in.size, out)

4. 网络I/O

‘ 

import java.net.{URL, URLEncoder} import scala.io.Source.fromURL 

fromURL(new URL(“http://www.baidu.com“)).mkString

或者指定编码: 

fromURL(new URL(“http://www.baidu.com“))(io.Codec.UTF8).mkString

Scala提供了丰富的文件操作API,可以方便地对文件进行读写、复制、删除等操作。 ## 读取文件内容 Scala中读取文件内容有多种方式,其中一种是使用Source对象。可以通过以下代码读取文件内容: ```scala import scala.io.Source val filename = "example.txt" val source = Source.fromFile(filename) val lines = source.getLines() for (line <- lines) { println(line) } source.close() ``` 以上代码使用`Source.fromFile`方法读取文件内容,并使用`getLines()`方法获取每一行的内容。最后需要调用`close()`方法关闭文件流。 ## 写入文件 写入文件同样可以使用`Source`对象,但需要使用`PrintWriter`作为输出流。下面是一个简单的例子: ```scala import java.io._ val filename = "example.txt" val writer = new PrintWriter(new File(filename)) writer.write("hello world") writer.close() ``` 以上代码通过`PrintWriter`将字符串写入文件,并调用`close()`方法关闭文件流。 ## 复制文件 Scala中复制文件可以使用Java中的`File`类和`Files`类。下面是一个使用`Files`类复制文件的例子: ```scala import java.io._ import java.nio.file.{Files, Paths} val sourceFile = "source.txt" val destinationFile = "destination.txt" Files.copy(Paths.get(sourceFile), Paths.get(destinationFile)) ``` 以上代码使用`Files.copy()`方法复制源文件到目标文件。 ## 删除文件 Scala中删除文件同样可以使用Java中的`File`类。下面是一个简单的例子: ```scala import java.io._ val filename = "example.txt" val file = new File(filename) if (file.exists()) { file.delete() } ``` 以上代码通过`File`类判断文件是否存在,并调用`delete()`方法删除文件。 以上就是Scala中文件操作的基本内容。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值