当前位置:   article > 正文

输入流与输出流_输入输出流

输入输出流

概念

传输数据的通道
  • 1

作用

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

分类

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

字节流

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

常用子类
	文件字节流:
		作用:
			将程序中的数据输出到文件中
			或
			将文件数据传输到程序中
		FileInputStream:将文件数据传输到程序中的流
		FileOutputStream:将程序中的数据输出到文件中的流
		
	内存字节流
	缓冲流
	对象流
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
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()
	关闭流
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
OutputStream提供的方法
void write(int b)
	输出一个字节数据,参数就是输出的字节数据

void write(byte b[])
	输出一组字节数据,参数就是输出的字节数据数组
	
void write(byte b[], int off, int len)
	将参数b中的数据从off位置开始向外输出len个
	
void flush()
	冲刷,保证管道中没有残留的数据
	
void close()
	关闭流
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
常用子类
文件流
	作用:读取文件中的内容,或给文件写入内容
	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
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
  • 27
  • 28
  • 29
  • 30
  • 31
  • 32
  • 33
  • 34
  • 35

字符流

特点
传输的最小单位是char(字符)
  • 1
父类
与字节流父类提供的方法的用法相似
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()
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
子类
文件流
	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();
         
	}
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
  • 27
  • 28
  • 29

文件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():获取当前文件夹下得所有直系子文件或文件夹
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/IT小白/article/detail/147184
推荐阅读
相关标签
  

闽ICP备14008679号