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().其分隔符是空格,只要利用空格就可以对下一个进行输入.回车也是其分隔符

  • 相关阅读:
    vue实例讲解之axios的使用
    实例讲解webpack的基本使用第四篇
    实例讲解webpack的基本使用第三篇
    实例讲解webpack的基本使用第二篇
    写好一篇技术博客的正确姿势是什么
    实例讲解js正则表达式的使用
    一个综合实例讲解vue的基础知识点。
    vue实例讲解之vue-router的使用
    .NET 串口通信
    textarea赋值时换行符无效的解决方法
  • 原文地址:https://www.cnblogs.com/bequt/p/5008150.html
Copyright © 2011-2022 走看看