每当回首往事时,不因碌碌无为而羞耻,不因虚度年华而悔恨...

java的输入和输出- [java学习]

上一篇 / 下一篇  2007-03-20 15:14:15

java.io包提供所有关于输入和输出的接口和类。

InputStream和OutputStream为字节流的输入输出类,是所有面向字节的输入输出流父类。

Reader和Write为字符流的输入输出类,是所有面向字符的输入输出流的父类。字符流用于存储和检索文本,以Unicode字符为单位进行读写。当写入一个16位的Unicode字符时,按字节分为两部分,先写高位字节,后写低位字节。

File和RandomAccessFile为对文件操作的类。File类记载文件信息并以顺序方式访问文件,RandomAccessFile类以随机方式访问文件。

×××××××××××××××××××××××××××××××××××××××××××××××××××××××

InputStream中的read()方法有一个被定义为abstract int read(),为什么被定义为抽象方法呢?主要是为了让继承InputStream类的子类可以针对不同的外部设备定义不同的read()方法。

java规定read()方法必须配合异常处理机制来使用,所以当用户使用read()方法时,必须加入IOException来执行异常处理,或是利用try-catch来执行错误控制。

从键盘读取一个字符的程序:

import java.io.*;

public class ReadKeyboard{
 public static void main(String args[])throws IOException{
  int a;
  System.out.print("please input a character:");
  a=(char)System.in.read();
  System.out.println("The character you input is:"+(char)a);
 }
}

×××××××××××××××××××××××××××××××××××××××××××××××

下面这个程序说明FileInputStream的用法:

import java.io.*;

public class OpenFile{
 public static void main(String []args){
  try{
   FileInputStream fis=new FileInputStream("OpenFile.java");
   int n=512;
   byte buffer[]=new byte[n];
   while((fis.read(buffer,0,n)!=-1)&&(n>0)){
    System.out.print(new String(buffer));
  }
  System.out.println();
  fis.close();
 }
 catch(IOException ioe){ System.out.println(ioe); }
 catch(Exception e){ System.out.println(e); }
 }
}

×××××××××××××××××××××××××××××××××××××××××××××××

下面一个程序说明write方法的标准输出的用法:将A输出到屏幕

import java.io.*;
public class WriteDemo{
 public static void main(String[] args){
  char a='A';
  System.out.write(a);
  System.out.write('\n');
 }
}

其它基本一样,不再赘述。

××××××××××××××××××××××××××××××××××××××××××××××××

过滤流:

java可以把两种类结合在一起构成过滤流,其方法就是使用一个已经存在的流构造另一个流。例如,如果想从一个文件中读取数字,可以先创建一个FileInputStream,然后把该类传递给一个DataInputStream的构造函数,如下:

FileInputStream fis=new FileInputStream("write.txt");

DataInputStream dis=new DataInputStream(fis);

double d=dis.readDouble()

****************************************************************

对象流:

将对象存取自一个流成为序列化(serialization),为了完成对象的序列化,这些对象需要符合以下几个条件:类需要实现Serializable接口(许多java标准类都是);若有数据不是可序列化的或不需要写出的(例如一些敏感而不想暴露的数据),则需将其声明为transient。



TAG:

 

评分:0

我来说两句

我的栏目

日历

« 2024-03-13  
     12
3456789
10111213141516
17181920212223
24252627282930
31      

数据统计

  • 访问量: 3707
  • 日志数: 7
  • 建立时间: 2007-03-09
  • 更新时间: 2007-05-29

RSS订阅

Open Toolbar