Scala IO总结

Scala IO总结

归纳下Scala的io,Scala创建了两个类用于io。

  • Console(用于标准输入输出)
  • StdIn(用于标准输入)
  • Source(用于文件输入,输出得用java的api)
  • 文件输出(Scala中没有专门的文件输出,需要使用Java的类)
  • 相对路径
  • 题外话:怎么在打包后获得jar包里的资源

Console

Console是对System.outSystem.inSystem.err的一层封装。

2

在scala.Predef中有许多方便的调用,所以才可以用print,println等函数

2

object Demo {
  def main(args:Array[String]): Unit ={
    println("Hello World")
  }
}

Console中也有用来从控制台读取的API,不过在Scala2.11后的版本后已废弃,改用StdIn来代替。


StdIn

StdIn是Console类中标准输入的引用

import scala.io.StdIn

object Demo {

  def main(args: Array[String]): Unit = {
    val a = StdIn.readLine("请输入:")
    println("输出为" + a)
  }
}


Source

Source是对java.io.File的一层封装

常用的方法有

  • fromFile
  • fromURI
import scala.io.Source

object Demo {

  def main(args: Array[String]): Unit = {
    println(Source.fromFile("pom.xml").mkString)
  }

}


相对路径

相对路径以jvm环境变量中的user.dir为根目录

在Scala中启动Scala的路径即为user.dir的值。

2

在IDEA中user.dir的值为项目的根目录下面

2


题外话:怎么在打包后获得jar包里的资源

使用类名.class.getClassLoader().getResource()

以log4j为例,获取包中的META-INF/MANIFEST.MF

2

import org.slf4j.Logger;

import java.io.IOException;

public class CUtil{
    public static void main(String[] args) throws IOException {
        System.out.println(Logger.class.getClassLoader().getResource("META-INF/MANIFEST.MF").getFile());
        System.out.println(Logger.class.getClassLoader().getResourceAsStream("META-INF/MANIFEST.MF").read());;
    }
}

2

  • 0
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值