IO框架
来源:互联网 发布:mac 扩展磁盘 找不到 编辑:程序博客网 时间:2024/06/16 04:47
java.io包里面主要有三个类:
1.File 文件和目录类
2.InputStream
OutputStream 都是抽象类不能实例化
字节流读写类
一.File类
File类的对象,表示了磁盘上的文件或者目录
Flie类不能对文件内容读写操作,直接处理文件或文件系统
构造方法
File(目录名)
文件输入输出流
FileInputStream 为InputStream的具体子类。 从文件去读数据到内存
三个read()方法
FileOutputStream 将内存的数据写入到文件
三个write()方法
例子:将e:/zhangsan/song.mp3复制到e://b.mp3
package com.jlu.cn.inputoutput;import java.io.File;import java.io.FileInputStream;import java.io.FileOutputStream;import java.io.IOException;public class InputOutputDemo { /** * @param args * @throws IOException */ public static void main(String[] args) { // TODO Auto-generated method stub try { FileUploadDemo.inputOutput(new File("e:\\zhangsan\\song.mp3"),new File("e:\\b.mp3")); } catch (IOException e) { // TODO Auto-generated catch block e.printStackTrace(); } }}class FileUploadDemo{ public static void inputOutput(File src,File des) throws IOException { FileInputStream fin=new FileInputStream(src); FileOutputStream fou=new FileOutputStream(des); long time1=System.currentTimeMillis(); byte[] by=new byte[1024*1024]; int len; while((len=fin.read(by))!=-1 ) { fou.write(by, 0, len); } fin.close(); fou.close(); long time2=System.currentTimeMillis(); System.out.println("完成这个文件的复制所需要的时间是"+(time2-time1)); }}
字节输入输出流,操作的是字节数组
ByteArrayInputStream两个构造方法,包含一个内部缓冲区,相当于从 他内部的冲缓区读到缓冲区
ByteArrayInputStream(byte array[])
ByteArrayInputStream(byte array[],int start,int numBytes)
ByteArrayOutputStream有两个构造方法,相当于从缓冲区写到他内部的缓冲区
ByteArrayOutputStream()//创建一个新的byte数组输出流
ByteArrayOutputStream(int numBytes) //创建一个新的byte数组输出流,具有指定大小缓冲区(字结尾单位)
ByteArrayInputStream中的close方法无效,因为调用不了底层资源
package com.jlu.cn.inputoutput;import java.io.ByteArrayInputStream;import java.io.ByteArrayOutputStream;import java.io.FileOutputStream;import java.io.IOException;public class ByteArrayInputOutputStreamDemo { /** * @param args * @throws IOException */ public static void main(String[] args) throws IOException { // TODO Auto-generated method stub String str="hello ShangHai"; //数据源就是字符数组,将字符串转换为对应的字符数组,用getBytes(),从字节数组里面读取字节 ByteArrayInputStream bis=new ByteArrayInputStream(str.getBytes()); int data=-1; while((data=bis.read())!=-1) { System.out.print((char)data); } ByteArrayOutputStream bio=new ByteArrayOutputStream(); bio.write(67); bio.write(99); bio.write("hello world".getBytes()); byte[] by=bio.toByteArray(); for(byte a:by) { System.out.print((char)a); } //将ByteArrayOutputStream内部缓存区的数据写入到文件输出流当中,参数true代表内容不会被覆盖,追加 FileOutputStream fil=new FileOutputStream("e:\\ab.txt",true); bio.writeTo(fil); fil.close(); }}
使用FileOutputStream流往一个文件里面写入数据
package com.jlu.cn.inputoutput;import java.io.File;import java.io.FileInputStream;import java.io.FileOutputStream;import java.io.IOException;public class OutputStream02Test { public static void main(String[] args) throws IOException { File file = new File("d:/zhangsan/cy44.txt");//1.建立联系 //2.判断父路径是否存在 if(!file.getParentFile().exists()){ file.getParentFile().mkdirs(); } //3.对象上转型,父类声明子类实例化 OutputStream os = null;//因为os是局部变量需要显性赋值 try { os = new FileOutputStream(file,true);//追加数据 //4.执行写入操作 String hello = "\r\n张三"; //如何换行,请注意 \r\n 是换行,getBytes()方法将字符串转换为字节数组 os.write(hello.getBytes()); } catch (FileNotFoundException e) { e.printStackTrace(); }catch (IOException e) { e.printStackTrace(); }finally { //5.关闭资源 if(os!=null){ os.close(); } } }}
- IO框架
- IO框架
- Java IO:IO框架
- 【IO流】IO框架
- 异步IO框架
- Java IO框架
- JAVA IO框架
- io通讯框架
- Java IO 框架整理
- Java IO框架
- socket.io框架学习
- Java Se----IO框架
- IO流基本框架
- Java IO(1)--框架
- IO框架复习一
- io框架练习
- java io框架
- java的IO框架总结
- CAPI
- 面向字节码写JAVA代码
- Hibernate基础------》单向映射--->one2one
- Android新特性介绍,ConstraintLayout完全解析
- Android中m、mm、mmm、mma、mmma的区别
- IO框架
- 23种设计模式汇总整理
- 递推递归练习J
- 欢迎使用CSDN-markdown编辑器
- Failed to parse plugin descriptor for org.apache.hadoop:hadoop-maven-plugins
- java网络通信编程
- 不成熟的梦想家 (未熟DREAMER)
- 初入python的几个坑
- 九度OJ 1156 谁是你的潜在朋友(哈希+计数)