-
字符流 1)编码问题 前已述及 起码有一点要非常清楚的是,一切进入计算机的都会变成字节码 2)认识文本和文本文件 java中的文本(其实就是char)16位的无符号整数,是字符的unicode编码(这是一种双自己编码) 文件是byte byte byte...的数据集合,可以缩句来理解 文件输数据集合。字节流的编码方式和序列化规则不一样就形成了不同的文件:文本文件,音频文件,视频文件等 文本文件是文本(char的编码)序列按照某种编码方案(utf-8,utf-16be,gbk)序列化为byte的数据存储集合 (3)字符流 抽象类 Reader Writer 二者实现了数据的两种相互转换,存储时我们用字节码的形式存储,读入计算机内存处理(包括显示,运算等)是用字符(ABC...)的形式。 字符的处理,一次处理一个字符。其底层仍然是基本的字节序列 字符流的基本实现 InputStreamReader 完成byte流解析为char流,按照编码接卸 OutputStreamWriter 提供char流到byte流,按照编码处理。 为什么上面特别说明了一下文本文件,因为字符流大部分操作的都是文本文件。毕竟文本文编,以编码的方式不容易认读,我们才把字符编码解析为字符。如果Reader一个MP3之类的音频文件,根本就没有什么意义,因为,声音本来就不是用来看的,所以说字符流主要是用于处理文本文件的查看全部
-
flush()//作用是刷新缓冲区查看全部
-
BufferedInputStream & BufferedOutputStream 这两个流类为IO提供了带缓冲区的操作,一般打开文件进行细耳 或读取操作时,都会加上缓冲,这种刘模式提供了IP的性能 打个比喻,从应用程序中把输入放入文件,相当于将一缸水导入到另一个缸中,方法有以下几种: FileOutputStream--->write()方法相当于一滴一滴把水“转移”过去 DataOutputStream--->writeXxx()方法会方便一些,相当于一瓢一瓢把水“转移”过去 BufferedOutputStream--->write方法更方便,相当于一瓢一瓢先放入桶中,再从桶中倒入到缸中。 批量读取导入速度最快查看全部
-
文件和文本问问区别查看全部
-
DataInputStream,DataOutputStream是对流功能的扩张,可以更加方便的读取int,long,字符等类型的数据. FileInputStream file=new FileInputStream("E:\\practice\\text"); DataInputStream i=new DataInputStream(file); //参数名是InputStream抽象类的对象,所以用他子类FileInputStream的对象来做参数. readInt readLong 方法都是对FileInputStream方法的包装 DataOutputStream/DataInputStream是对“流”功能的扩展,可以更加方便的读取 int,long, 字符等类型数据 DataOutputStream:使用FileOutputStream构造出来,通过包装FileOutput,可以调用FileOutput类的write方法来构造新的更方便的写方法: new DataOutputStream(new FileOutptStream(file)) wrieteUTF()采用utf-8编码写出字符串 用utf-16be写出字符串,或字符串数组 写完之后一定要关闭流 数据输入输出流: DataInputStream、DataOutputStream 是对“流”功能的扩展,方便读写 DataOutputStream dos = new DataOutputStream(new FileOutputStream(file)); dos.writeInt(10); dos.writeLong(10l);字母l dos.writeDouble(10.5); //采用utf-8编码写出 dos.writeUTF("中国"); //采用utf-16be编码写出 dos.writeChars("中国");查看全部
-
java文件存储是byte 集合查看全部
-
字节流之文件输入流FileInputStream、输出流FileOutputStream简介 I IO流(输入流、输出流) 字节流、字符流 1.字节流 1)InputStream、OutputStream InputStream抽象了应用程序读取数据的方式 OutputStream抽象了应用程序写出数据的方式 2)EOF = End 读到-1就读到结尾 3)输入流基本方法 int b = in.read()//读取一个字节无符号填充到int低八位.-1是 EOF in.read(byte[] buf)//读取数据填充到字节数组buf in.read(byte[] buf,int start,int size)//读取数据到字节数组buf,从buf的start位置开始存放size长度的数据 4)输出流基本方法 out.write(int b)//写出一个byte到流,b的低8位 out.write(byte[] buf)//将buf字节数组都写入到流 out.write(byte[] buf,int start,int size)//字节数组buf从start位置开始写size长度的字节到流 5)FileInputStream--->extends InputStream,具体实现了在文件上读取数据 6)FileOutputStream--->extends OutputStream,实现了向文件中写出byte数据的方法查看全部
-
RandomAccessFile java提供的对文件内容的访问,既可以读文件,也可以写文件。<br> RandomAccessFile支持随机访问文件,可以访问文件的任意位置<br> <br> (1)java文件模型<br> 在硬盘上的文件是byte byte byte存储的,是数据的集合<br> (2)打开文件<br> 有两种模式"rw"(读写) "r"(只读)<br> RandomAccessFile raf = new RandomeAccessFile(file,"rw")<br> 文件指针,打开文件时指针在开头 pointer = 0;<br> (3) 写方法<br> raf.write(int)--->只写一个字节(后8位),同时指针指向下一个位置,准备再次写入<br> (4)读方法<br> int b = raf.read()--->读一个字节<br> (5)文件读写完成以后一定要关闭(Oracle官方说明) 在创建一个file的时候,如果没有写绝对路径,那就是相对路径,在这个项目下的文件。查看全部
-
IO输入输出查看全部
-
IO输入输出流查看全部
-
java.io.File用于表示文件(目录)<br> File类只用于表示文件(目录)的信息(名称、大小等),不能用于文件内容的访问 file.getName()返回文件名<br> file.getAbsolutePath()返回文件路径<br> file.isDirectory()返回是否是目录 file.isFile()返回时否是文件 file.mkdir()创建目录<br> file.mkdirs()创建多层子目录<br> file.exist()返回是否文件是否存在<br> file.delete()删除文件 文件导入一定用双斜杠//查看全部
-
1.编译器一般默认为GBK编码,GBK编码中一个中文字符占两个字节,一个英文字符占一个字节;UTF-8编码中一个中文字符占三个字节,一个英文字符占一个字节;JAV是双字节编码,是UTF-16be编码,一个中文字符占两个字节,一个英文字符占两个字节。在中文系统上默认的是ansi编码,即GBK编码。 2.直接创建文本文件默认为ansi编码 3.你在创建文本文件的时候默认的就是ANSI编码。联通和联凑巧是UTF-8的编码,所以会乱码。你把不是UTF-8 的文本文件放在中文系统上,它也不会乱码。。 当字节序列是某种编码时,若把字节序列变成字符串,也需要用这种编码方式,否则会乱码。查看全部
-
RandomAcessFile类查看全部
-
RandomAccessFile java提供的对文件内容的访问,既可以读文件,也可以写文件。<br> RandomAccessFile支持随机访问文件,可以访问文件的任意位置<br> <br> (1)java文件模型<br> 在硬盘上的文件是byte byte byte存储的,是数据的集合<br> (2)打开文件<br> 有两种模式"rw"(读写) "r"(只读)<br> RandomAccessFile raf = new RandomeAccessFile(file,"rw")<br> 文件指针,打开文件时指针在开头 pointer = 0;<br> (3) 写方法<br> raf.write(int)--->只写一个字节(后8位),同时指针指向下一个位置,准备再次写入<br> (4)读方法<br> int b = raf.read()--->读一个字节<br> (5)文件读写完成以后一定要关闭(Oracle官方说明) 在创建一个file的时候,如果没有写绝对路径,那就是相对路径,在这个项目下的文件。查看全部
-
如果父类没有实现序列化接口,反序列化的时候,父类的构造函数会比显示调用查看全部
举报
0/150
提交
取消