zoukankan      html  css  js  c++  java
  • Java I/O 操作的一些基本知识

    1.文件类:File ,也是唯一的单独的文件类.可以对文件进行操作.其方法有:exists(),delete(),isDirectory(),createNewFile(),getName(),getPath(),mkdir()创建文件夹,

    2.流,先分为输入输出流,之后再分为字节和字符输入输出流.
      (1)InputStream,OutputStream,是父类的输入输出流.是字节的输入输出流.主要的方法还是read(),当read()=-1的时候就是到了结尾.write是进行字节的输出.
      (2)Reader,Writer,是父类的输入输出流.是字符的输入输出流.主要的方法还是read(),当read()=-1的时候就是到了结尾.write是进行字符的输出.

    3.字节流转换成字符流的桥梁.
      (1)InputStreamReader,此类是把输入流为字节的转换成字符流.
      (2)OutputStreamWriter,此类是把输出流为字节的转换成字符流.
    对于以上的类,进行了转换,那就是把流成功转换成字符了,如果要向外输入,直接用字符流输出就可以了.

     1 public static void main(String[] args) throws IOException {
     2         File file1=new File("d:\","a.txt");
     3         File file2=new File("d:\","b.txt");
     4         FileInputStream fs1=new FileInputStream(file1);
     5         InputStreamReader f1isr=new InputStreamReader(fs1);
     6         //在这里不难发现,输出字节流转换成了字符流
     7         FileWriter fw2=new FileWriter(file2);
     8         int contents;
     9         while((contents=f1isr.read())!=-1){
    10             fw2.write(contents);
    11         }
    12         fs1.close();
    13         fw2.close();
    14     }

     4.BufferedReader和BufferedWriter
      这个是一个以行为单位,进行对行操作,对行进行输入和输出.方法有readLine()是否等于null,newLine()生成新的一行.

    5.PrintStream和PrintWriter两种类
      (1)PrintStream,打印输出流,是字节的输出.
      (2)PrintWriter,打印输出流,是字符为单位,在读取文本文件的时候尽量使用这个.
    在java平台上,这两个是没有区别的,只有在跨平台的情况下才会可能出现问题.但是二者在java平台中都是可以输出各类数据的,比如String,int,char,Obect类型.注意是object类型.

    6.ObjectInputStream和ObjectOutputStream两个对象序列化,是对对象进行序列化处理
      对于InputStream要进行

     1 File sfile = new File("d:\", "a.txt");
     2             ObjectInputStream in = new ObjectInputStream(new FileInputStream(
     3                     sfile));
     4  5             try {
     6                 object = in.readObject();//注意要进行定义object,并对定义的object判断类型,从而进行在控制台输出.
     7                 if (object instanceof ArrayList) {
     8                     ArrayList<Student> slist=(ArrayList<Student>)object;
     9                     for (Student student : slist) {
    10                         for (Course course : student.getClist()) {
    11                             System.out.println(student.getId() + "	" + student.getName()
    12                                      + "	" + student.getAge() + "	" + course.getCourse()
    13                                      + "	" + course.getAvgScore() + "	"
    14                                      + course.getEndScore());
    15                         }
    16                     }
    17                 }

      对于OutputStream来说,主要的还是如何对序列进行整理到一个文件上,要用到implements Serializable接口,即对对象进行序列化

     1 try {
     2             File sfile = new File("d:\", "a.txt");
     3             if (!sfile.exists()) {
     4                 sfile.createNewFile();
     5             }
     6             ObjectOutputStream out = new ObjectOutputStream(
     7                     new FileOutputStream(sfile));
     8             out.writeObject(slist);
     9             out.close();
    10             File sfile = new File("d:\", "a.txt");
    11             ObjectInputStream in = new ObjectInputStream(new FileInputStream(
    12                     sfile));
    13             Object object;

    7.Scanner扫描器利用,其方法有很多nextInt(),next()(此是字符串),nextdouble().其分隔符是空格,只要利用空格就可以对下一个进行输入.回车也是其分隔符

  • 相关阅读:
    背水一战 Windows 10 (26)
    背水一战 Windows 10 (25)
    背水一战 Windows 10 (24)
    背水一战 Windows 10 (23)
    背水一战 Windows 10 (22)
    背水一战 Windows 10 (21)
    背水一战 Windows 10 (20)
    背水一战 Windows 10 (19)
    背水一战 Windows 10 (18)
    背水一战 Windows 10 (17)
  • 原文地址:https://www.cnblogs.com/bequt/p/5008150.html
Copyright © 2011-2022 走看看