• Java暑期学习第二十五天日报


    一、今日学习内容:

    今天学习了12.2.1字节流和字符流的内容。

    二、遇到的问题:

    三、明日计划:

    明天计划学习12.2.2过滤流、12.2.3内存操作流、12.2.4缓冲流的内容。

    今日学习的具体内容:

    字节流和字符流

    输出流(从计算机流入外部) 对输出流只能进行写操作
    输入流(从外部流入计算机) 对输入流只能进行读操作
    字节流 主要操作字节序列的对象,如对二进制文件、图片、影响文件的操作。
    字符流 主要操作字符列的对象,如文本文件

    1.字节流

    (1)输出字节流——OutputStream

    OutputStream是所有字节输出流的父类,它是一个抽象类。

    OutputStream FileOutputStream
    ByteArrayOutputStream
    StreamBufferedOutputStream

    ByteArrayOutputStream、FileOutputStream是两种基本的介质流,分别向Byte数组和本地文件写入数据。ObjectOutputStream和FilterOutputStream的子类都是装饰流。

    (2)使用字节输出流OutputStream的定义如下:

    public abstract class OutoutStream extends Object implements Closeable,Flushable

    在此类中定义了几个常用的方法:

    关闭流 public void close()throws IOException
    写一组数据 public void write(byte[] b) throws IOException
    写一个数据 public void write(int b) throws IOException  若想对OutputStream进行实例化且进行文件操作,需要使用FileOutputStream子类
    构造 public FileOutputStream(File file )throws FileNotFoundException

    实例——使用字节流追加内容

    import java.io.OutputStream;
    import java.io.IOException;
    import java.io.FileOutputStream;
    public class FileOutputStreamDemo2 {
        public static void main(String [] args) throws IOException {
            out();
        }
        public static void out()throws IOException{
            OutputStream out=null;
            try {
            out=new FileOutputStream("D:\\hello.txt",true);
            String info="Hello php!";
            byte []buf=info.getBytes();
            out.write(buf);
            }
            catch(IOException e)
            {
                e.printStackTrace();
            }
            finally
            {
                try
                {
                    if(out!=null)
                    {
                        out.close();
                        System.out.println("输出完成!");
                    }
                    
                }
                catch(IOException e)
                {
                    e.printStackTrace();
                }     
            }
        }
    }

    测试截图:

        

     2.输入字节流——InputStream

    (1)InputStream是所有字节输出流的父类,它是一个抽象类。

    InputStream FileInputStream
    ByteArrayInputStream
    StringBufferInputStream

    ByteArrayIntputStream、FileInputStream、StringBufferInputStream是三种基本的介质流,分别向Byte数组、本地文件和StringBuffer中读取数据。ObjectInputStream和FilterInputStream的子类都是装饰流。

    (2)使用字节输入流InputStream的定义如下:

    public abstract class InoutStream extends Object implements Closeable

    在此类中定义了几个常用的方法:

    关闭 public void close()throws IOException
    读取一组内容 public int read (byte[] b)throws IOException
    读取一个字节 public abstract int read()throws IOException

    实例——使用字节流输入流读取文件内容

    import java.io.IOException;
    import java.io.FileInputStream;
    public class FileInputStreamDemo {
        public static void main(String[] args)throws IOException{
            in();
        }
        public static void in(){
            FileInputStream input=null;
            try {
                input=new FileInputStream("D:\\HelloWorld.java");
                byte[] buf=new byte[1024];
                int len=-1;
                while((len=input.read(buf))!=-1)
                {
                    String s=new String (buf,0,len);
                    System.out.println(s);
                }
            }
            catch(IOException e) {
                e.printStackTrace();
            }
            finally
            {
                try
                {
                   if(input!=null)
                   {
                      input.close();
                   }
                }
                catch(IOException e) {
                    e.printStackTrace();
                }
            }        
        }
    }

    测试截图:

    3.字符流输出流

    (1)Writer是字符输出流,是一个抽象类,需要用子类FileWriter来操作文件。

    实例——使用字符输出流输入内容

    //如果需要追加内容只需要新的构造函数即:

     因此只需要

    FileWriter fw=new FileWriter("D:\\write.txt",true);该语句即可。
    FileWriter fw=new FileWriter("D:\\write.txt");该语句表示每次运行都会覆盖原来的内容。
     
    import java.io.FileWriter;
    import java.io.IOException;
    public class WriterDemo {
        public static void main(String [] args)throws IOException{
            write();
        }
        public static void write()throws IOException{
            FileWriter fw=new FileWriter("D:\\write.txt",true);
            fw.write("231133");
            fw.close();
        }
    
    }

    测试截图:

    4.字符输入流——Reader

    FileReader是字符输入流,是一个抽象类,需要同FileReader进行实例化。

    实例——使用字符输入流读取内容

    import java.io.IOException;
    import java.io.Reader;
    import java.io.FileReader;
    public class ReaderDemo {
        public static void main(String[] args)throws IOException{
                read();
            }
        public static void read()throws IOException{
            FileReader fr=new FileReader("D:\\hello.txt");
            char[] buf=new char[1024];
            int len=-1;
            while((len=fr.read(buf))!=-1)
            {
                String s=new String(buf,0,len);
                System.out.println(s);
            }
            fr.close();
        }
            
    }

    测试截图;

         

  • 相关阅读:
    Sql server 经典常用函数
    Sql Server 时间格式化
    eval解析JSON中的注意点
    SQL Server 数据库try catch 存储过程
    SQL 添加索引
    sql中的begin catch 。。。end catch 的用法
    常用正则表达式
    css3实现背景渐变
    CacheHelper
    星座运势(等)接口控制器
  • 原文地址:https://www.cnblogs.com/Lizhichengweidashen/p/13404449.html
Copyright © 2020-2023  润新知