java基础之IO流

java.io包:

File

字节流:针对二进制文件

InputStream

--FileInputStream

--BufferedInputStream

--ObjectInputStream

OutputStream

--FileOutputStream

--BufferedOutputStream

--ObjectOutputStream

字符流:针对文本文件。读写容易发生乱码现象,在读写时最好指定编码集为utf-8

Writer

--BufferedWriter

--OutputStreamWriter

Reader

--BufferedReader

--InputStreamReader

--PrintWriter/PrintStream

 

 

1、文件流

//测试File工具类

public class Test1_File {

    public static void main(String[] args) throws Exception {

       //1、创建对象

       //参数,可以是文件的路径也可以是文件夹的路径

       File f = new File("D:\\teach\\1.txt");

 

流式传输主要指将整个音频和视频及三维媒体等多媒体文件经过特定的压缩方式解析成一个个压缩包,由视频服务器向用户计算机顺序或实时传送。在采用流式传输方式的系统中,用户不必像采用下载方式那样等到整个文件全部下载完毕,而是只需经过几秒或几十秒的启动延时即可在用户的计算机上利用解压设备对压缩的A/V、3D等多媒体文件解压后进行播放和观看。此时多媒体文件的剩余部分将在后台的服务器内继续下载。

2、字节流和字符流

public class Test3_FIS {

    public static void main(String[] args) {

       method();//字符流读取文件

 //     method2();//字节流读取文件

    }

   

    //字符流读取文件

    private static void method() {

       Reader in = null;//声明in变量,保证finally里能用

       try {

           //1、创建字符流对象

           //InputStreamReader是转换流,用来把字节流转换成字符流

           in = new InputStreamReader(new FileInputStream("D:\\teach\\1.txt"));

           Reader in2 = new FileReader("D:\\teach\\1.txt");

           //BufferedReader带有缓冲区的字符读取流,把FileReader进行了包装,提供缓冲区,提高效率

           Reader in3 = new BufferedReader(new FileReader("D:\\teach\\1.txt"));

          

           //2、开始读取

           int b = 0;//定义变量,记录读取到的数据

           while(  ( b = in.read() ) != -1) {

              System.out.println(b);

           }

          

       }catch (Exception e) {

           e.printStackTrace();

       }finally {//保证资源一定会被释放

           try {

              //3、关闭资源 

              in.close();

           } catch (IOException e) {

              e.printStackTrace();

           }

       }

    }

 

 

    //字节流读取文件

    private static void method2() {

       InputStream in = null;//声明变量,为了finally块中也能用

       try {

           //1、创建字节流对象

           in = new FileInputStream("D:\\teach\\1.txt");

//         InputStream in2 = new FileInputStream(new File("D:\\teach\\1.txt"));

          

           //2、开始读取

//         System.out.println( in.read() );

//         System.out.println( in.read() );

//         System.out.println( in.read() );

//         System.out.println( in.read() );

//         System.out.println( in.read() );

          

           int b = 0;//定义变量,记录每次读到的值

           //如果读到了数据的末尾,真没数据了,read()返回-1

           while( ( b = in.read() )  != -1) {

              System.out.println(b);//打印读到的值

           }

          

       }catch (Exception e) {

           e.printStackTrace();

       }finally {//finally就是为了保证发生了异常也要必须执行的功能

           try {

              //3、释放资源

              in.close();

           } catch (IOException e) {

              e.printStackTrace();

           }

       }

      

    }

 

//字符流写出

    private static void method3() {

       Writer out = null;

       try {

           //1、创建字符流对象

           out = new FileWriter("D:\\teach\\1.txt",true);//追加数据

//         Writer out2 = new FileWriter("D:\\teach\\1.txt");//数据发生覆盖

      

           //2、开始写出

           out.write(48);

           out.write(49);

           out.write(50);

           out.write(51);

          

      

       } catch (IOException e) {

           e.printStackTrace();

       }finally {

           //3、关闭资源

           try {

              out.close();

           } catch (IOException e) {

              e.printStackTrace();

           }

       }

      

    }

 

    //字节流写出

    private static void method4() {

       OutputStream out = null;//声明out变量,保证finally能用

       try {

           //1、创建字节流对象

//         out = new FileOutputStream("D:\\teach\\1.txt");//会覆盖以前的数据

           out = new FileOutputStream("D:\\teach\\1.txt",true);//保留以前的数据,进行追加

 

           //2、开始写出

           out.write(97);

           out.write(98);

           out.write(99);

          

       } catch (Exception e) {

           e.printStackTrace();

       }finally {

        //3、关闭资源

           try {

              out.close();

           } catch (IOException e) {

              e.printStackTrace();

           }

       }

    }

   

}

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值