职业教育新东方网 > 职业教育 > 计算机 > 等级考试 > 计算机二级 > JAVA > 文章正文

2012年计算机二级Java输入输出操作学习教程

分享到:

2011-12-30 10:56  作者:  来源:互联网  字号:T|T

第 九 章 Java输入输出操作

9.1 Java 输入输出流

  所有的程序语言都提及与本机文件系统交互的方式;Java也不例外。我们将看看Java是怎样处理标准文件输入输出的(包 括stdin,stout,stderr)。当你在网络上开发小程序时,你必须注意直接文件输入输出是不安全因素的关键。大多数用户设置他们的浏览器,可让你自由的访问他们的文件系统,但有的不让你访问。当然,如果你开发你内部的应用程序,你也许需要直接访问文件。

  标准输入输出Unix的用户,或其他基于命令行系统的用户(如DOS),都知道标准输入输出的含义。标准输入文件是键盘,标准输出文件是你的终端屏幕。标准错误输出文件也指向屏幕,如果有必要,它也可以指向另一个文件以便和正常输出区分。

  系统类Java通过系统类达到访问标准输入输出的功能。上面提到的三个文件在 这个系统类中实现: Stdin System.in作为InputStream类的一个实例来实现stdin, 你可以使用read()和skip(long n)两个成员函数。read()让你从输入中读一个字节,skip(long n)让你在输入中跳过n个字节。

  Stout System.out作为PrintStream来实现stdout,你可以使用print()和println()两个成员函数。 这两个函数支持Java的任意基本类型作为参数。

  Stderr System.err同stdout一样实现stderr。 象System.out一样,你可以访问PrintStream成员函数。

9.2 标准输入输出例子

  import java.io.* class myCat{

  public void main(String args[]) throws IOException{

  int b;

  int count = 0;

  while ((b = System.in.read()) != -1){

  count++;

  System.out.print((char)b);

  }

  System.out.println(); //blank line System.err.println("counted"+count+"total bytes.");

  }

  }

9.3 普通输入输出类

  除了基本的键盘输入和屏幕输出外,我们还需要联系文件的输入输出。我们将学习下面几个类:

  FileInputStream ,DataInputStream,FileOutputStream ,DataOutputStream。

  作为参考,再列出特定应用的类:

  PipedInputStream,BufferedInputStream,PushBackInputStream,StreamTokenizer,PipedOutputStream,BufferedOutputStream,RandomAccessFile

  我们不在此讨论这些类,但你可以在JAVA_HOME/src/java/io目录里查看每个类的成员函数定义。

9.4 文件

  在我们进行文件操作时, 需要知道关于文件的信息。File类提到了成员函数来操纵文件和获得文件的信息。

  9.4.1 创建一个新的文件对象

  你可用下面三个方法来创建一个新文件对象:

  File myFile; myFile = new File("etc/motd");

  或

  myFile = new File("/etc","motd");

  //more useful if the directory or filename are variables

  或

  File myDir = new file("/etc");

  myFile = new File(myDir,"motd");

  这三种方法取决于你访问文件的方式。例如,如果你在应用程序里只用一个文 件,第一种创建文件的结构是最容易的。 但如果你在同一目录里打开数个文件, 则第二种或第三种结构更好。

  9.4.2 文件测试和使用

  创建了一个文件对象, 你便可以使用以下成员函数来获得文件相关信息:

  文件名:String getName() , 路径:String getPath() 绝对路径:String getAbslutePath() ;重命名:boolean renameTo(File newName) 。

  文件测试:boolean exists(),boolean canWrite(),boolean canRead() ,boolean isFile() ,boolean isDirectory() ,boolean isAbsolute()。

  一般文件信息:long lastModified() ,long length()。

  目录用法:boolean mkdir() ,String[] list()。  

  9.4.3 文件信息获取例子程序

  这里是一个独立的显示文件的基本信息的程序,文件通过命令行参数传输:

  import java.io.*;

  class fileInfo{

  File fileToCheck;

  public static void main(String args[]) throws IOException{

  if (args.length>0){

  for (int i=0;i

  fileToCheck = new File(args[i]);

  info(fileToCheck);

  }

  }

  else{

  System.out.println("No file given.");

  }

  }

  public void info (File f) throws IOException{

  System.out.println("Name: "+f.getName());

  System.out.println("Path: "=f.getPath());

  if (f.exists()) {

  System.out.println("File exists.");

  System.out.print((f.canRead() ?" and is Readable":""));

  System.out.print((f.cnaWrite()?" and is Writeable":""));

  System.out.println(".");

  System.out.println("File is " + f.lenght() = " bytes.");

  }

  else {

  System.out.println("File does not exist.");

  }

  }

  }

热点课讯

精彩问答

提问