学习java第23天

1.InputStream类

read()方法,逐字地以二进制的原始方法读取数据

public int read();                      //读入一个字节,-1表示无

public int read(bytr b[]);           //返回读入的字节数

2.OutputStream类

write()方法,是将字节写入流中

public void write (int b);           //将参数b的低位字节写入到输出流

public void write (byte b[]);      //将字节数组b中的全部字节顺序写入到输出流

Output的另外两个写法是flush()和close()

public void flush();               //刷新缓存,写入到文件

public void close();              //关闭流

3.Reader 类和Writer类

Reader类 : 输入流,读取的是字符(char)

Writer类 : 输出流,写入的是字符

public int read();                                      //将int类转换成char

public int read(char b[]);

public void write(int b);                          //将参数b的低两字节写入到输出流

public void write(char b[]);                     //将字符数组b的全部字节顺序写入到输出流

public void write(String s);                     //将字符串写入流中

4.标准输入和标准输出

System.in  为  InputStream类型

System.out  为  PrintStream类型

System.err  为  PrintStream类型

二进制流的读写:

import java.io.*;
public class Dump {
    public static void main(String[]args) {
        try
        {
            dump( new FileInputStream("aaa.bmp"),
                  new FileOutputStream("bbb.bmp"));
        }
        catch(FileNotFoundException fex)
        {
            fex.printStackTrace();
        }
        catch (IOException ioe)
        {
            ioe.printStackTrace();
        }
    }
    public static void dump(InputStream src, OutputStream dest)
    throws IOException
    {
        InputStream input = new BufferedInputStream(src);
        OutputStream output = new BufferedOutputStream(dest);
        byte[] data = new byte[1024];
        int length = -1;
        while ((length = input.read(data)) != -1) {
            output.write(data, 0, length);
        }
        input.close();
        output.close();
    }
}
字符的读写:
import java.io.*;
public class CopyFileAddLineNumber {
 public static void main (String[] args) {
  String infname = "CopyFileAddLineNumber.java";
  String outfname = "CopyFileAddLineNumber.txt";
  if( args.length >= 1 ) infname = args[0];
  if( args.length >= 2 ) outfname = args[1];
  try {
   File fin = new File(infname);
   File fout = new File(outfname);
   BufferedReader in = new BufferedReader(new FileReader(fin));
   PrintWriter out  = new PrintWriter(new FileWriter(fout));
   int cnt = 0; // 行号
   String s = in.readLine();
   while ( s != null ) {
    cnt ++;
    s = deleteComments(s);                                       //去掉以//开始的注释
    out.println(cnt + ": \t" + s );                                   //写出
    s = in.readLine();                                                  //读入
   }   
   in.close();                                                              // 关闭缓冲读入流及文件读入流的连接.
   out.close();
  } catch (FileNotFoundException e1) {
   System.err.println("File not found!" );
  } catch (IOException e2) {
   e2.printStackTrace();
  }
 }
 static String deleteComments( String s )                   //去掉以//开始的注释
 {
  if( s==null ) return s;
  int pos = s.indexOf( "//" );
  if( pos<0 ) return s;
  return s.substring( 0, pos );
 }
}
对象的读写:
import java.io.*;
class Person implements Serializable
{
 String name;
 int age;
 Person(String name, int age){
  this.name=name; this.age=age;
 }
 public String toString(){
  return name + "(" + age + ")";
 }
};
public class SerializeDemo {
 public static void main (String[] args) throws IOException{
  Person [] ps = { new Person("Li",18), new Person("Wang",19) };
  ObjectOutputStream output = new ObjectOutputStream( new FileOutputStream("s.temp") );
  for(Person p : ps) output.writeObject(p);
  output.close();
  ObjectInputStream input = new ObjectInputStream( new FileInputStream("s.temp") );
  Person p = null;
  try{
   while( (p=(Person)input.readObject()) != null ){
    System.out.println(p);
   }
  }catch(ClassNotFoundException ex){}
  catch(EOFException eofex){}
  input.close();
 }
}
 
明天学习内容:
文件及目录
.
 
 

猜你喜欢

转载自www.cnblogs.com/SirNie/p/13391891.html