zoukankan      html  css  js  c++  java
  • Java语言学习(7)-Java中IO

    Java中的IO

    Java中的IO包含流(Stream)、文件(File)的IO,所有IO类都定义在java.io包中。

    一、控制台IO

    1、输入

      Java的控制台输入由System.in完成。为了获取控制台的输入,可以把System.in封装在一个BufferedReader对象进行操作。样例:

        BufferedReader bReader = new BufferedReader(new InputeStreamReader(System.in));

      然后对bReader对象进行操作。

      1)       bReader.read():

        从控制台读取一个字符并按照int返回。流读取结束时时候返回-1,并抛出一个IOException。read()函数定义如下:

        int read( ) throws IOException

      2)       br.readline()

        从控制台读取一行字符串,返回String类型。readline()函数定义如下:

        String readLine( ) throws IOException

          样例:

        char c;

        c = (char)br.read();

        System.out.printfln(c);

     

        String str;

        str = br.readline();

        System.out.println(str);

     

    2、输出:

      输出常用的是print()、println()方法,这些方法都由PrintStream类定义。System.out是称PrintStream类对象的一个引用。

      样例:

        System.out.println(“Hello World!”);

     

      PrintStream类继承自OutputStream类。PrintStream类重写了write()方法,也可使用write()方法向控制台写内容。

      样例:

        int b;

        b = ‘A’;

        System.out.write(b);

        System.out.write(‘ ’);

           write()方法不经常使用,因为print()和println()方法更方便。

     

    3、通过Scanner类从控制台输入:

      java.util.scanner是Java5引入的特性。

      1)       使用Scanner类读取字符串:

        一般采用next()、或nextline()方法读取字符串,读取线采用hasNext()、或hasNextline()方法判断是否还有输入。

        样例:

          Scanner scan = New Scanner(System.in);

          if(scan.hasnext()) {

            String str = scan.next();

            System.out.Println(str);

          }

        next()和nextline()方法的区别:

        a)       nextline()读取整行内容,包含空白字符,直到行结尾Enter结束。

        b)       next()无法读取空白字符。首个有效字符前的空白字符会被忽略。读取到有效字符后的空白字符结束。

      2)       使用Scanner类读取其他数据类型:

        整数:hasNextInt() nextInt()

        浮点数:hasNextFloat() nextFloat()

    二、文件系统IO

    文件操作的类是FileInputStream和FileOutputStream。

    1、输入:

      通过文件名创建FileInputStream对象:

        FileInputStream fStream = new FileInputStream("d:/helllo/hello.txt");

      通过文件对象来创建FileInputStream对象:

        File filehandle = new File("d:/helllo/hello.txt");

        FileInputStream fStream = new FileInputStream(filehandle);

     

      FileInputStram类的方法:

        1)       public void close() throws IOException{}

        关闭文件。

        2)       potected void finallize() throws IOException{}

        清除该文件的链接。

        3)       public int read(int r) throws IOException{}

        从InputSteam中读取指定字节的数据,并自动指向下一个字节数据。读取到末尾返回-1。

        4)       public int read(byte[] b) throws IOException{}

        从InputeStream中读取b.length字节的数据。返回读取的字节数,读取到默认返回-1。

        5)       public int available() throws IOException{}

        返回下一次对此输入流可调用方法可不受阻塞读取的字节数。

       

      样例:

               FileInputStream fStream = new FileInputStream(“d:/helllo/hello.txt”);

               int size = fStream.available();

               for(i= 0; i<size; i++)

               {

        Systemm.out.println((char)fStream.read())

       }

       fStream.close();

     

    2、输出:

      通过文件名创建FileOutputStream对象:

        FileOutputStream fStream = new FileOutputStream("d:/helllo/hello.txt");

      通过文件对象来创建FileOutputStream对象:

        File fHandle =new File("d:/helllo/hello.txt");

        FileOutputStream fStream = new FileOutputStream(fHandle);

     

      FileOuputeStram类的方法:

        1)       public void close() throws IOException{}

        关闭文件。

        2)       potected void finallize() throws IOException{}

        清除该文件的链接。

        3)       public void write(int r) throws IOException{}

        把参数字节值输入到文件流中。

        4)       public void wtire(byte[] b) throws IOException{}

        把b.length字节的数据输入到文件流中。

        样例:

          FileOutputStream fStream = new FileOutputStream (“d:/helllo/hello.txt”);

          char[] cHello = {‘H’, ’e’, ’l’, ’l’, ’o’, ‘!’};

          fStream.write(cHello);

          fStream.close();

     

      更多细节,请详细了解:File类、FileReader类、FileWriter类。

    三、文件夹操作

    File类中有两个方法来创建文件夹:

      1)       mkdir():创建一个文件夹,成功返回true

      2)       mkdirs():循环创建一个文件夹、及其所有父文件夹

     

    File类中有如下方法读取文件夹:

      1)       isDirectory():判断File对象是否为一个文件夹

      2)       list():读取File对象包含的文件、文件夹列表

     

    File类中删除文件夹、或文件:

      1)       delete():删除文件

      2)       deleteFolder():删除文件夹

      样例:

        File folder = new File("/tmp");

        File[] files = folder.filelistFiles();

        if(files != NULL) {

          for(File f : files) {

            if (f.isDirectory()) {

              deleteFolder(f);

            } else {

              f.delete();

            }

          }

        }

        folder.delete() 

  • 相关阅读:
    小白学 Python(11):基础数据结构(元组)
    小白学 Python(10):基础数据结构(列表)(下)
    小白学 Python(9):基础数据结构(列表)(上)
    小白学 Python(8):基础流程控制(下)
    小白学 Python(7):基础流程控制(上)
    小白学 Python(6):基础运算符(下)
    小白学 Python(5):基础运算符(上)
    小白学 Python(4):变量基础操作
    小白学 Python(3):基础数据类型(下)
    小白学 Python(2):基础数据类型(上)
  • 原文地址:https://www.cnblogs.com/yickel/p/11837411.html
Copyright © 2011-2022 走看看