基础篇之io流

1.\和/及pathSeparator与separator

\是在Windows下的文件分割符,在java中\表示转义,文件分隔符为\\

/非Windows下的文件分割符如Linux,推荐使用的格式,在其他情况下也可以使用

pathSeparator与系统有关的路径符分割符,相当于“;”,可以跨平台使用

separator与系统有关的默认文件分割符,相当于java中的“\\”,可以跨平台使用

2. 字节流和字符流

字节流可以处理任何文件,字符流一般用于处理文本文件

3. 字符流存在的原因

每个国家的字符不一样,所以涉及到字符编码问题,为了获取正确的数据,所以需要添加指定的编码集继续解析,所以就存在了字符流。

4. 文件被破坏的原因

字节数不够或者字节码乱码

5. 常用的输入输出流及转换流等

1》输入流

FileInputStream:从文件系统中的某个文件中获得输入字节

BufferedInputStream:该类实现缓冲的输入流,提高效率,所以一般都会对FileInputStream进行相应的包装

FileReader读取字符流;

BufferedReader:该类实现缓冲的字符输入流,提高效率,所以一般都会对FileReader进行相应的包装,采用了装饰模式(放大器)

PrintStream:system.out及system.err的返回类型,可以输入至文件,也可以显示到控制台,system中也有相应的方法。

DatainputStream:写入和读出顺序续需要保持一致,否则可能会乱码,readUTF()以utf-8的形式读出字符,没有找到相应内容,输出EOFException异常

ObjectInputStream:非序列化的写出为初始化默认值,文本里面的内容还是看不懂的

ByteArrayInputStream:保存在内存中,后续可写入文件,这个流的空间不宜过大,否则内存会卡

2》输出流

FileReader ,BufferedWriter,FileOutputStream,BufferedOutputStream,PrintWriter ,

ObjectOutputStream

DataOutputStream:writeUTF(String str)以utf-8的形式写字符,文本的内容是给电脑看的,我们看不懂

ObjectOutputStream:先序列化,后反序列化,不是所有的都能序列化,需要实现Serializable接口,在Serializable接口中不需要序列化属性前加transient;

转换流

3》转换流

InputStreamReader:是字节流通向字符流的桥梁:它使用指定的 charset 读取字节并将其解码为字符。

OutputStreamWriter:是字符流通向字节流的桥梁:可使用指定的 charset 将要写入流中的字符编码成字节

4》其他

RandomAccessFile:String mode模式有r只读,rw读和写等,里面有一个Seek方法可以指定从某处开始读取;其他方法和字节流类似,seek的字节数需要与对应编码集一致

SequenceInputStream:SequenceInputStream(Enumeration<? extends InputStream> e),按迭代器的顺序依次输入InputStream的子类;

时间: 2024-10-12 14:00:17

基础篇之io流的相关文章

黑马程序员——【Java基础】——Java IO流

一.IO概述 1.IO:是Input.Output的缩写. 2.特点: (1)用于处理设备间的数据传输. (2)Java对数据的处理是通过“流”完成的. (3)Java用于操作流的对象都在IO包中. (4)流按操作分为两种:字节流和字符流. (5)流按流向分为:输入流和输出流(输入输出是相对于“内存”而言的). 3.IO流常用基类 (1)字节流abstract基类:InputStream.OutputStream: (2)字符流抽象基类:Reader.Writer: 二.字符流(Reader.W

基础知识之----------IO流

1.IO流 用于将存储设备中的数据(硬盘.内存等)读入到固定设备中进行处理. IO流分为字节流和字符流. 之前是没有字符流的,有ASICC编码表,里面固定的数字代表各个字母.但是每个国家的信息是不同的,就造成各个国家有各自的码表,不利于信息的互通. 后来产生了国际通用码表,可以识别很多国家的文字.Unicode码表.特点是:不论什么字符都用两个字节表示. 一个中文在GBK中数字和Unicode中可能并不一样. Unicode对所有数字进行了重新编码.所以在GBK中编写了,使用Unicode码表查

Java基础之(IO流)

简介: 流是一组有顺序的,有起点和终点的字节集合,是对数据传输的总称或抽象.即数据在两设备间的传输称为流,流的本质是数据传输,根据数据传输特性将流抽象为各种类,方便更直观的进行数据操作. 一.File类 java.io.File类:文件和目录路径名的抽象表示形式,与平台无关 File ,能新建.删除.重命名文件和目录.但 File 不能访问文件内容本身,如果需要访问文件内容本身,则需要使用输入/输出流. File对象可以作为参数传递给流的构造函数 File类的常见构造方法: 1.public F

JAVA基础篇—文件与流

处理字节流的抽象类 InputStream 是字节输入流的所有类的超类,一般我们使用它的子类,如FileInputStream等. OutputStream是字节输出流的所有类的超类,一般我们使用它的子类,如FileOutputStream等. 2.InputStreamReader  OutputStreamWriter 处理字符流的抽象类 InputStreamReader 是字节流通向字符流的桥梁,它将字节流转换为字符流. OutputStreamWriter是字符流通向字节流的桥梁,它将

C#基础篇--文件(流)

1:Path类是专门用来操作文件路径的(Path类是静态类):当然用字符串的处理办法也能实现.  string str = @"C:\Users\成才\Desktop\Hashtable.txt";             //返回文件名             Console.WriteLine(Path.GetFileName(str));             //返回文件名,但不包括扩展名             Console.WriteLine( Path.GetFile

【Java基础总结】IO流

字节流 1. InputStream 字节输入流 代码演示 1 InputStream in = System.in; 2 3 System.out.println("int read(byte b) 方法演示"); 4 //int read() 5 int bt = 0; 6 while((bt=in.read())>0){ 7 System.out.print(bt+" "); 8 if(bt == 10){ //回车\r(13) 换行\n(10) 9 b

基础知识之----------IO流(4)操作文件

1.文件的切割合并 public class SpliFileDemo { //创建1M的缓冲区 private static int SIZE=1048576; public static void main(String[] args) throws IOException { File file=new File("c://partfile"); // splitFile(file); mergeFile(file); } public static void splitFile

IO流与NIO流

(转自CSDN) IO流上:概述.字符流.缓冲区(java基础) 一.IO流概述 概述: IO流简单来说就是Input和Output流,IO流主要是用来处理设备之间的数据传输,Java对于数据的操作都是通过流实现,而java用于操作流的对象都在IO包中. 分类: 按操作数据分为:字节流和字符流. 如:Reader和InpurStream 按流向分:输入流和输出流.如:InputStream和OutputStream IO流常用的基类: * InputStream    ,    OutputSt

java基础篇IO流的规律

前两篇降了IO流中的字节流和字符流复制的例子,今天来总结一下IO流的规律 掌握好IO流的规律,再开发中会很好用 下面来总结一下: 1,明确源和目的 源:输入流 InputStream 和Reader 目的:输出流 OutputStream 和Writer 2,操作的数据是否是纯文本. 是:使用字符流 不是:使用字节流 3,当体系明确后,在明确要使用哪个具体的对象,通过设备来进行区分 源设备: 内存,硬盘,键盘 目的设备: 内存,硬盘,控制台 这里的源就是你想进行的操作,比如说你想从c盘复制一个文