1-scala文件操作--读写,序列化

scala文件读写,序列化

import java.io._
import java.nio.file._
import scala.io.Source

object HelloWorld extends App {

  println("打印所有的子目录")
  implicit def makeFileVisitor(f: (Path) => Unit) = new SimpleFileVisitor[Path] {
    override def visitFile(p: Path, attrs: attribute.BasicFileAttributes) = {
      f(p)
      FileVisitResult.CONTINUE
    }
  }

  val dir: File = new File("D:/scalawork")
  Files.walkFileTree(dir.toPath, (f: Path) => println(f))

  println("打印所有的文件")
  def subdirs(dir: File): Iterator[File] = {
    val children = dir.listFiles.filter(_.isDirectory)
    children.toIterator ++ children.toIterator.flatMap(subdirs _)
  }

  subdirs(new File("D:/scalawork")).foreach { println _ }

  println("写文件")
  val out = new PrintWriter("numbers.txt")
  for (i <- 1 to 100) out.println(i)
  // use string format
  val quantity = 100
  val price = .1
  out.print("%6d %10.2f".format(quantity, price))
  out.close()

  println("读文件")
  val lines = Source.fromFile("numbers.txt").getLines()
  lines.foreach { println _ }

  println("读取二进制文件")
  class Student(val name: String, val sex: Short, val addr: String) extends Serializable {
    override def toString(): String = {
      "name:%s,sex:%d,addr:%s".format(name, sex, addr)
    }
  }
  val studentA = new Student("张三", 2, "广州")
  val studentB = new Student("李四", 2, "广州")
  val outObj = new ObjectOutputStream(new FileOutputStream("student.obj"))
  outObj.writeObject(studentA)
  outObj.writeObject(studentB)
  outObj.close()
  val in = new ObjectInputStream(new FileInputStream("student.obj"))
  println(in.readObject().asInstanceOf[Student])
  println(in.readObject().asInstanceOf[Student])
  
  //读取二进制文件
    var in = None: Option[FileInputStream]
  var out = None: Option[FileOutputStream]
  try {
    in = Some(new FileInputStream("/tmp/Test.class"))
    out = Some(new FileOutputStream("/tmp/Test.class.copy"))
    var c = 0
    while ({ c = in.get.read; c != -1 }) {
      out.get.write(c)
    }
  } catch {
    case e: IOException => e.printStackTrace
  } finally {
    println("entered finally ...")
    if (in.isDefined) in.get.close
    if (out.isDefined) out.get.close
  }
}
时间: 2024-09-28 10:42:12

1-scala文件操作--读写,序列化的相关文章

nodejs 文件与文件操作(读写文件 删除 重命名)

读写文件nodejs中操作相对就简单很多!来看看几个例子吧. [写文本文件] // wfile.js ------------------------------  代码如下 复制代码 var fs = require("fs");   var data = 'hello 雨林博客'; fs.writeFile('c:a.txt', data, 'ascii', function(err){  if(err){  console.log('写入文件失败');  }else{  cons

C:文件操作-读写字符与读写行

1.读写字符函数putc()与getc() 这两个函数类似于putchar()与getchar()函数.假设fp是一个FILE指针,ch是一个字符变量, ch = getc(fp);// ch = getchar(); putc(ch,fp);// putchar(ch); 将文件内容(按字符)输出到标准输出的C实现: #include <stdio.h> #include <stdlib.h> /* 将文件内容(按字符)输出到标准输出 */ void read_ch(char *

php中常用文件操作读写函数介绍

用 PHP 内置函数 file_exists 可以检查某个文件或目录是否存在.如果文件或目录存在,file_exists 函数返回 TRUE,如果不存在,则返回 FALSE. 下面是一个简单的检查文件是否存在的实例代码:  代码如下 复制代码 <html><body><?php $filename = "C:\blabla\php\hello.txt"; if (file_exists($filename))  {echo "The file $

让你提前认识软件开发(22):shell脚本中的文件操作

第1部分 重新认识C语言 shell脚本中的文件操作   [文章摘要]         编写shell脚本时,经常会涉及到对文件的操作,比如从文件中读取一行数据.向文件追加一行数据等.完成文件读写操作的方法有很多,了解各种命令下文件操作的执行情况,有助于开发人员在不同使用场景下选择合适的命令.        本文以实际的shell脚本为例,介绍了对文件进行操作的不同方法,为相关开发工作提供了参考. [关键词]        shell  文件操作  读写  效率   一.概述         在

Java 中对文件的读写操作之比较

比较 Java 中对文件的读写操作之比较 作者:Jeru Liu日期:November 29,2000版本:1.0 Java 对文件进行读写操作的例子很多,让初学者感到十分困惑,我觉得有必要将各种方法进行一次分析,归类,理清不同方法之间的异同点. 一.在 JDK 1.0 中,通常是用 InputStream & OutputStream 这两个基类来进行读写操作的.InputStream 中的 FileInputStream 类似一个文件句柄,通过它来对文件进行操作,类似的,在 OutputSt

Java中对文件的读写操作之比较

比较 Java 中对文件的读写操作之比较 Java 对文件进行读写操作的例子很多,让初学者感到十分困惑,我觉得有必要将各种方法进行 一次分析,归类,理清不同方法之间的异同点. 一.在 JDK 1.0 中,通常是用 InputStream & OutputStream 这两个基类来进行读写操作的. InputStream 中的 FileInputStream 类似一个文件句柄,通过它来对文件进行操作,类似的,在 OutputStream 中我们有 FileOutputStream 这个对象. 用F

介绍asp.net 操作INI文件的读写

 这篇文章主要介绍了asp.net 操作INI文件的读写,读写操作本地ini配置文件的方法,需要的朋友可以参考下  代码如下: using System; using System.Data; using System.Configuration; using System.Web; using System.Web.Security; using System.Web.UI; using System.Web.UI.WebControls; using System.Web.UI.WebCon

python读写文件操作示例程序

 日常操作中,少不了文本处理,如程序输入数据准备,python凭借其简洁优雅的语法,在文本处理上比C++等编译型语言开发效率高出一大截,下面看代码 文件操作示例     复制代码 代码如下: #输入文件 f = open(r'D:Python27pro123.bak')  #输出文件 fw = open(r'D:Python27pro123e.bak','w') #按行读出所有文本 lines = f.readlines() num = -1 for line in lines:     str

PHP目录与文件操作技巧总结(创建,删除,遍历,读写,修改等)_php技巧

本文实例总结了PHP目录与文件操作技巧.分享给大家供大家参考,具体如下: Demo1.php <?php //将一个路径赋给一个变量 //它目前来说,只是一个字符串,字符串表示的是一个目录的路径 //文件名包含,文件的名称 + 文件的扩展名(就是.后面的文件类型) //文件的扩展名说白了就是文件后缀 $path = 'C:\AppServ\www\Basic6\Demo1.php'; // echo basename($path); // echo '<br/>'; // //dirna