ScalaのIO操作

主にI / Oクラスで使用されるJava 1.scala(java.io.Fileに)

パス区切り文字(「;」ウィンドウ)を表すパブリック静的最終列pathSeparator定数

パブリック静的最終列セパレータは、一定のパス区切り文字(「\」ウィンドウ)を表します

公開ファイル(文字列のパス名は)完全なパスを渡し、建設Fileクラスのオブジェクトを作成します。

パブリックブールでCreateNewFile()のIOExceptionは、新しいファイルを作成する通常のスロー

通常のファイルが存在する)(パブリックブール値が存在するかどうかは判断され

パブリックブール削除()普通のファイルの削除

パブリックブールisDirectory()通常のかどうかは、与えられたパスがディレクトリであるかどうかを判断します

公共長い長さ()通常のファイルサイズを返します。

公共のString []リスト()すべての一般的な指定されたディレクトリの内容が、名前

公共ファイル[] LISTFILES()指定されたディレクトリのすべての一般的な内容は、パスを一覧表示されます。

一般的なディレクトリを作成するには、パブリックブールます。mkdir()

既存のファイルの名前を変更するパブリックブールrenameTo(ファイルDEST)共通

 

2.小​​型の例:

import java.io.File
import scala.io.Source
import java.io.PrintWriter


val filePath = new File("C:\\Users\\peanut\\Desktop\\apple.txt")

val source=Source.fromFile(filePath)
val source2=Source.fromFile(filePath,"UTF-8")
val source3 = Source.fromURL("www.baidu.com","UTF-8")
val source4 = Source.fromString("i like strawberry")


//读取文件中所有行,返回一个迭代器
val lineIterator = source.getLines()
lineIterator.foreach(println)

//读取文件中所有行,toArray返回一个数组
val lineArray = source.getLines().toArray
for(ele <- lineArray){
println("line: "+ele)
}

//读取文件中所有行,mkstring返回一个字符串
val lineString = source.getLines().mkString //文件不能过大


//将文件内容以空格分割,返回一个数组
val arrayTokens = source.mkString.split("\\s+")

source.close() //关闭流


//写文件

val out =new PrintWriter("C:\\Users\\peanut\\Desktop\\appleWrite.txt")
for (i <- 1 to 10){
//out.println("hello")
out.write("Apple")
}
out.close()//关闭打印流

 

3.小さな例2:

val path = new File("C:\\Users\\peanut\\Desktop\\myFile")

for(file <- getFile(path)){
val filePath=file.getAbsolutePath //获取绝对路径

System.out.println("getAbsolutePath: " + filePath)
val fileName=file.getName //获取文件名
System.out.println("fileName: " + fileName)
}


val path2 = new File("C:\\Users\\peanut\\Desktop\\apple.txt")

try {
path2.createNewFile()
println("create file success ")
} catch {
case e:Exception => println("can't create "+path2)
}

if(path2.exists()){
path2.delete()
println("delete file success!")
}



/**
* 遍历出指定目录下的全部文件
* @param file 指定目录
* @return Array[File]
*/
def getFile(file: File): Array[File] = {

    val files = file.listFiles().filter(!_.isDirectory) //过滤掉目录
    //.filter(t => t.toString.endsWith(".txt") || t.toString.endsWith(".json") ) //过滤保留特定后缀名的文件

    //递归遍历子目录
    val files2=file.listFiles().filter(_.isDirectory).flatMap(getFile)
    files ++ files2
}


/**
* 遍历出指定目录下的所有目录
* @param file 指定目录
* @return Array[File]
*/
def getDir(file: File): Array[File] = {

    val dirs = file.listFiles().filter(_.isDirectory) //只保留目录

    //递归遍历子目录
    val dirs2=files.flatMap(getDir)
    dirs++ dirs2
}

 

公開された53元の記事 ウォン称賛40 ビュー40000 +

おすすめ

転載: blog.csdn.net/u012761191/article/details/105310765