Scala operaciones IO

1.scala Java utilizado principalmente en la clase I / O (java.io.File)

Las constantes públicas estáticas finales cadena PathSeparator que representan el delimitador de ruta (ventanas: '');

separador de cadena public static final representa un delimitador de ruta constante (ventanas: '\')

Archivo público (Ruta de acceso) Crea un objeto de construcción de clase File, pasando la ruta completa

createNewFile public boolean () throws IOException ordinaria crear un nuevo archivo

Si existe public boolean () existe el archivo ordinarias se determinará

borrar archivos públicos (booleanas) ordinarios de eliminación

Ya sea isDirectory pública booleano () normal a determinar si una ruta dada es un directorio

longitud pública de largo () Devuelve el tamaño del archivo de lo común

public String [] list (lista) Todos los contenidos generales del directorio especificado, pero el nombre

Archivo público [] (listFiles) Listar todos los contenidos generales del directorio especificado serán listados camino.

mkdir pública booleano () para crear un directorio común

renameTo public boolean (dest Archivo) común para cambiar el nombre del archivo existente

 

2. Pequeño ejemplo:

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. Ejemplo Pequeño 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
}

 

Publicado 53 artículos originales · alabanza won 40 · Vistas a 40000 +

Supongo que te gusta

Origin blog.csdn.net/u012761191/article/details/105310765
IO:
Recomendado
Clasificación