java 文件的输入和输出 Scanner()与PrintWriter的用法,以及 java.io.file.paths

public static void main(String[] args) throws IOException
    {
       Scanner in=new Scanner(System.in);
       PrintWriter out=new PrintWriter("good.txt","UTF-8");
       //如果文件不存在,创建该文件,可以像输出到System.out一样使用print,println,以及printf命令
      out.println("hello");
       //如果文件名中包含反斜杠符号,就要记住在每个反斜杠之前再加一个额外的反斜杠,如"c:\\mydirctory\\mufile.txt"
       //在这里指定了UTF-8字符编码,这对于互联网上的文件很常见,读取一个文本文件时,要知道它的字符编码Scanner(路径,编码);如果省略字符编码Scanner(路径);则会使用默认编码,如果在不同的机器上,就会有不同的表现
       //现在,就可以利用前面介绍的任何一个Scanner方法对文件进行读取
       //要想写入文件,就需要构造一个PrintWriter对象。在构造器中,只需要提供文件名:
       //可以构造一个带有字符串参数的Scanner("myfile.txt");但是这个Scanner将字符串解释为数据,而不是文件名,这个Scanner会将参数作为包含10个字符的数据
       //党制定一个文件名时,文件位于java虚拟机启动路径的相对位置。如果在命令行方式下用下列命令启动程序:java Myprog
      // 启动路径就是命令解释器的当前路径。然而,如果使用IDE,那么路径将由IDE控制,可以使用下面的调用方式来找到路径的位置:     
       String dir=System.getProperty("user.dir");
       String dir2=System.getProperty("hello");
       //PrintWriter("HELLO.txt","UTF-8");而Scanner(Paths.get("hello.txt"),"UTF-8");
       //如果觉得定位文件比较烦恼,可以考虑使用绝对路径,例如:c:\\mydirectory\\myfile.txt
       //正如读者所看到的,访问文件与使用System.in和System.out一样,要记住一点:如果用一个不存在的文件构造Scanner,或者用一个不能被闯将的文件名构造一个PrintWriter,那么就会发生异常。Java编译器认为这些异常比"被零除"异常更加严重。现在,应该告诉编译器,已经知道有可能出现输入\输出异常。这需要在main方法中用throws IOException
       /*
       public static void main(String[] args) throws IOException
       {
            Scanner in=new Scanner(Paths.get("hello.txt","UTF-8);
            PrintWriter str=new PrintWriter("hello.txt","UTF-8");
       }
       现在已经学习了如何读写包含文本数据的文件,对于更加高级的技术
       当采用命令行方式启动一个程序时,可以利用Shell的重定向语法将任意文件关联到System.in和System.out;
       java Myprog<myfile.txt>output.txt,这样,就不必担心IOException异常了。
}
java.util.Scanner
    Scanner(File f);  //构造一个从给定文件读取数据的Scanner
    Scanner(String data);  //构造一个从给定字符串读取数据的Scanner 
java.io.PrintWriter;
  PrintWriter(String filename)  //构造一个将数据写入文件的PrintWriter。
  java.nio.file.Paths;
  Paths.get(String pathname); //根据给定的路径名构造一个Path
  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值