输入流与输出流

概念

传输数据的通道

作用

传输数据
将数据从别的地方,如内存,文件等地方传输给程序
或
将程序中的数据传输到别的地方

分类

按照流向分类
输入流:将数据从别的地方,如内存,文件等地方传输给程序中
输出流:将程序中的数据输出到别的地方,如内存,文件等
按照传输的最小数据单位分类
字节流:传输的数据最小单位是byte
	可以传输任何一种数据
	
字符流:传输的数据最小单位是char
	只能输出文本内容,但是不能传输音频,视频,图片等数据
按功能分类分类
节点流:
	不会对数据进行加工
过滤流:
	会对数据进行加工

字节流

体系
InputStream:所有字节输入流的父类,是一个抽象类
OutputStream:所有字节输出流的父类,是一个抽象类

常用子类
	文件字节流:
		作用:
			将程序中的数据输出到文件中
			或
			将文件数据传输到程序中
		FileInputStream:将文件数据传输到程序中的流
		FileOutputStream:将程序中的数据输出到文件中的流
		
	内存字节流
	缓冲流
	对象流
InputStream提供的方法
int read()
	读取一个字节的数据,返回值就是读取到的数据
	
int read(byte b[])
	读取多个字节数据到数组b中,返回值是读取到的数据的字节长度.
	注意:如果读取到-1表示读取结束,-1在文件中是不进行显示的,其在文件中的表示为EOF,EOF是end-of-file的缩写,eof的值为-1
	
int read(byte b[], int off, int len)
	读取多个字节数据到数组b中,从off位置开始存放,存储多个字节数据,返回值还是读取到的字节长度
	注意:如果读取到-1表示读取结束
	
void close()
	关闭流
OutputStream提供的方法
void write(int b)
	输出一个字节数据,参数就是输出的字节数据

void write(byte b[])
	输出一组字节数据,参数就是输出的字节数据数组
	
void write(byte b[], int off, int len)
	将参数b中的数据从off位置开始向外输出len个
	
void flush()
	冲刷,保证管道中没有残留的数据
	
void close()
	关闭流
常用子类
文件流
	作用:读取文件中的内容,或给文件写入内容
	FileInputStream
	FileOutputStream
内存流
	作用:将数据读取到内存中,或从内存中取出数据
	ByteArrayInputStream
	ByteArrayOutputStream
		toByteArray():获取内存流连接的内存中的数据
缓冲流(该流为过滤流)
	作用:提高读写效率
	BufferedInputStream
	BufferedOutputStream
        一般设置缓冲区大小为8k
对象流
	作用:将对象存入文件中,或将文件中的存储对象读取到程序中
	ObjectInputStream
        特有方法:readObject()
	ObjectOutputStream
        特有方法:writeObject(Object obj)
	注意:
	在将对象存储到文件中和从文件中读取存储的对象信息时,该对象需要实现序列化,否则将无法将对象通过流进行传输
	static 修饰的属性不能被序列化
    版本号除了让程序员与程序员进行沟通外,没有其他实际作用
    存储的对象中的所有属性的数据类型都必须实现Serializable (序列化接口)   
    transient 修饰的属性称为瞬时属性,不参数序列化
    关于何时使用 statictransient 修饰
      	static 类公共所有时使用
		transient 属性不为类所公共所有,且不需实习序列化时可使用此修饰
            
标准输出流
	System.out  所属类型 :PrintStream
        特有方法 print() println()
标准输入流
	System.in   所属类型 :InputStream

字符流

特点
传输的最小单位是char(字符)
父类
与字节流父类提供的方法的用法相似
Reader(抽象类)
	read()
	read(char[] c)
	read(char[] c,int off, int len)
	close()
Writer(抽象类)
	write(int b)
	write(char[] c)
	write(char[] c, int off , int len)
	flush()
	close()
子类
文件流
	FileReader
	FileWriter
缓冲流
	BufferedReader
		特有方法:readLine()按行读取数据,返回值类型为String,如果返回为null表示读取文件结束
	BufferedWriter
		特有方法:newLine()在将数据写入文件时进行换行与'\n'类似
转换流
	InputStreamReader
	OutputStreamWriter
            
标准输出流
	PrintWriter
        new PrintWriter(File file)
		特有方法:
            对象.print(形参)
            对象.println(形参)
            将形参传入file路径的文件中
            
       public static void main(String[] args) throws IOException {
		File file = new File("C:\\test.txt");
		PrintWriter writer = new PrintWriter(file);
        //将“输出写入”"C:\\test.txt"中,如果C:\\test.txt存在则会覆盖
		writer.print("输出");
        //关闭流
		writer.close();
         
	}

文件File

1,创建file对象
	new File("路径")
2,常用属性:
	separator:获取当前系统的文件分割符
	pathSeparator:获取当前系统的路径分割符
3,常用方法
	file对象.getAbsolutePath():获取文件的绝对路劲
	file对象.getPath()获取文件路径
	file对象.getParent():获取父文件夹路径
	file对象.getParentFile():获取父文件夹对应的file对象
	file对象.createNewFile();:创建文件
	file对象.mkdir():创建1级文件夹
	file对象.mkdirs():创建多级文件夹
	file对象.isDirectory():判断是否是文件夹
	file对象.isFile():判断是否是文件
	file对象.exists():判断是否是可执行程序,即文件是否存在
    file对象.renameTo(new File("路径")):对文件重命名,并将文件放至参数中文件所在的路径
	delete():删除文件或一级空文件夹
	length():获取文件中内容的字节数
	listFiles():获取当前文件夹下得所有直系子文件或文件夹
  • 2
    点赞
  • 24
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值