zoukankan      html  css  js  c++  java
  • 文本I/O

    1.文件类file

      file类用以获取文件和目录属性以及删除和重命名文件的方法:

      

    File(pathname:String) 为特定路径名创建一个File对象。这里的路径名可以是一个目录也可以是一个文件
    File(parent:String,child: Stirng) 为目录parent下的child创建一个File对象。这个child可以是一个文件名也可以是一个子目录
    File(parent:File,child: Stirng) 为目录parent下的child创建一个File对象。这个parent是一个File对象,上面的构造方法中,parent是一个字符串
    exits():boolean 如果File对象表示的文件或目录名存在则返回true
    canRead():boolean 如果File对象表示的文件存在且可读则返回true
    canWrite():boolean 如果File对象表示的文件存在且可写则返回true
    isDirectory():boolean 如果File对象表示一个目录则返回true
    isFile():boolean 如果File对象表示一个F文件则返回true
    isAbsolute():boolean 如果使用一个绝对路径名创建一个File对象则返回true
    isHidden():boolean 如果File对象中表示的文件被隐藏则返回true。被隐藏的确切含义是:在Windows系统中,可以在文件属性对话框中标记该文件为隐藏的。在Unix系统中,如果文件名以“.”开始则隐藏该文件
    getAbsolutePath():String 返回File对象中表示的完整的绝对文件名或目录名
    getCanonicalPat():String 除了能删除路劲名中的“."和”..“这样的冗余名,能解析符号链接(在Unix平台上),能将驱动器号转换为标准的大写字母(在Windows系统下),返回的都是跟getAbsolutePath()一样的
    getName():String 返回File对象表的完整路径名和文件名的最后一个名字
    getParent():String 返回File对象表的完整路径名和文件名的完整父目录
    getPath():String 返回File对象表的完整路径名和文件名
    lastModified():long

    返回文件最后一次修改的时间

    length():long 返回文件的大小,如果文件不存在返回0,如果是目录则返回目录大小
    listFile():File[] 返回一个File对象下的文件
    delete():boolean 删除这个文件。如果删除成功返回true
    renameTo(dest:File):boolean 重命名这个文件,操作成功返回true

     

        

      · 在Windows中目录的分隔符是反斜杠()。但是在java中,反斜杠是一个特殊字符,应该写成\。或者斜杠(/),/是java的目录分割符,与Unix系统一样。

      · 构建一个File实例并不会在机器上创建一个文件。不过文件是否存在,都可以创建任意文件名的File实例。可以调用exits()方法来判断这个文件是否存在。

        new File("image/us.gif);  //可以在Windows、Unix或其他任意的系统上运行。

    2. 文件读入和输出

    2.1 使用PrintWrite写数据

      java.io.PrintWriter类用来创建一个文件并向文本文件写入数据

      创建一个PrintWriter对象:PrintWriter output = new PrintWriter(filename); 

      然后,可以调用PrintWriter对象上的print、println和printf方法像文件写入数据。

    PrintWriter(file:File)       --为特定的文件对象创建一个PrintWriter对象。

    PrintWriter(filename:String)   --为特定的文件名字符串创建一个PrintWriter对象。

    print(s: String):void      --向文件写入一个字符串

    print(c:char):void       --向文件写入一个字符

    print(cArray:char[]):void          --向文件写入一个字符数组

    print(i:int):void        --向文件写入一个int数值

    print(i:long):void        --向文件写入一个long数值

    print(f:float):void        --向文件写入一个float数值

    print(d:double):void      --向文件写入一个double数值

    print(b:boolean):void     --向文件写入一个boolean数值

      · println方法除了可以打印一个分隔符之外,其他都跟print方法一样。

      · 如果文件不存在,调用PrintWriter的构造方法会创建一个新文件。如果文件存在,那么文件的当前内容会被废弃

      · 调用PrintWriter的构造方法可能会抛出某种I/O异常,java强制要求编写代码来处理这类异常。

      · 向文件中写入文本之后,应该使用close()方法关闭文件

     1 package demo;
     2 
     3 import java.util.Scanner;
     4 
     5 /**
     6  * 文本输入测试
     7  * Created by luts on 2015/12/2.
     8  */
     9 public class test {
    10     public static void main(String[] args) throws  Exception{
    11         java.io.File file = new java.io.File("scores.txt"); //创建File对象
    12         if (file.exists()){
    13             System.out.println("File already exits");
    14             System.exit(0);
    15         }
    16 
    17         //新建一个文档
    18         java.io.PrintWriter output = new java.io.PrintWriter(file);
    19 
    20         output.print("Joke: ");
    21         output.println(90);
    22         output.print("Lucy: ");
    23         output.println(80);
    24 
    25         //关闭文件
    26         output.close();
    27     }
    28 }

    2.2 使用Scanner读数据

      Scanner input  =  new Scanner(System.in);  //从控制台读取字符串或者基本数据类型

      Scanner input  =  new Scanner(new File(filename));  //从文件中读取字符串或者基本数据类型

    Scanner的常用方法:

      Scanner(source:File)   --创建一个所产生的值都是从特定文件扫描而来的扫描器

      Scanner(source:String)   --创建一个所产生的值都是特定字符串扫描而来的扫描器

      close()          --关闭这个扫描器

      hasNext():boolean      --如果这个扫描器中还有可读数据的时候则返回true

      next()          --从这个扫描器返回下一个标志作为字符串

      nextLine():String    --使用行分隔符从这个扫描器返回一个行字符串

      nextByte():byte    --从这个扫描器返回下一个标志为byte的值 

      nextShort():short    --从这个扫描器返回下一个标志为short的值 

      nextInt():int      --从这个扫描器返回下一个标志为int的值

      nextLong():long    --从这个扫描器返回下一个标志为long的值  

      nextFloat():float    --从这个扫描器返回下一个标志为float的值 

      nextDouble():double    --从这个扫描器返回下一个标志为double的值 

      useDelimiter(pattern:String):Scanner    --设置这个扫描器的分割模式并返回这个扫描器

     1 package demo;
     2 
     3 import java.util.Scanner;
     4 
     5 /**
     6  * 文本读取数据测试
     7  * Created by luts on 2015/12/2.
     8  */
     9 public class test {
    10     public static void main(String[] args) throws  Exception{
    11         java.io.File file = new java.io.File("scores.txt");
    12 
    13         Scanner input = new Scanner(file);
    14 
    15        while(input.hasNext()){
    16            String name = input.next();
    17            int score = input.nextInt();
    18            System.out.println(name + ": " +score);
    19        }
    20 
    21         //关闭文件
    22         input.close();
    23     }
    24 }
    Joke:: 90
    Lucy:: 80

      方法nextByte()、nextShort()、nextInt()、nextLong()、nextFloat()、nextDouble()和next()等都成为令牌读取方法(token-reading method),因为这些方法读取用分隔符隔开的令牌。默认的分隔符为空格

      一个令牌读取方法首先跳过任意的分隔符,然后读取一个以分隔符结束的令牌,接着令牌会根据对应的方法转成相应的数据类型。

      next()方法读取一个由分隔符分隔的字符串,nextLine()读取一个由行分隔符分隔的一行字符串。

       

  • 相关阅读:
    禁用LinkButton的方法
    Windows Server2008R2中导入Excel
    Viewport
    Firefox模拟手机访问手机网站
    关闭ReSharper中的[ Use 'var' ]提示(Disable C# “var” Recommendation in ReSharper)
    浏览器中如何获取想要的offsetwidth、、、clientwidth、、offsetheight、、、clientheight。。。
    JS中关于clientWidth offsetWidth scrollWidth 等的含义的详细介绍
    base64编码解码js
    scrollTop如何实现click后页面过渡滚动到顶部
    如何快速获取当前链接?后面的内容,location.search、页面滚动
  • 原文地址:https://www.cnblogs.com/luts/p/5013491.html
Copyright © 2011-2022 走看看