- 浏览: 143366 次
- 性别:
- 来自: 浙江
文章分类
最新评论
-
bnmnba:
bnmnba 写道bnmnba 写道 三个文件的学习学习。这么 ...
linux下C/C++ 入门hello world(转) -
bnmnba:
bnmnba 写道 三个文件的学习学习。这么写:#includ ...
linux下C/C++ 入门hello world(转) -
bnmnba:
三个文件的学习学习。
linux下C/C++ 入门hello world(转) -
fcmfcm01:
个人觉得没什么必要,控制访问权限完全可以由方法来实现,就像ja ...
C#中属性和字段的区别和联系<转载> -
eagledame:
很详细 谢谢了~
JAVA IO流的老师小结
Input / Output:指跨越出JVM的边界,与外界数据的源头或者目标数据源进行数据交换. 输出 Output -------------------------------> JVM 数据源 <------------------------------- 输入 Input 注意:输入/输出是针对JVM 而言。 File 类 可表示一个文件,也有可能是一个目录(在JAVA中文件和目录都属于这个类中,而且区分不是非常的明显,可以调用isDirectory()和isFile()来判断)。 File file = new File("c:\\abc.txt"); 常用的方法: exists() 用来判断 文件或目录是否在硬盘存在。 isDirectory() 判断是否是目录 isFile() 判断是否是文件 mkdir() 创建目录 mkdirs() 创建目录包括它下面的子目录。 getAbsolutePath() 得到文件绝对路径 list() 得到文件名的String数组 (得到当前目录下的文件名,目录名) listFiles() 返回File类型数组,(目录,文件的File对象)可用getName()得到文件名。 delete() 删除文件 getName() 得到文件名 getPath() 得到文件相对路径 separtor() 得到文件分隔符 //这个方法有更好的通用性,平台不同结果不同 deleteOnExit() 在进程退出的时候删除文件,常用在临时文件的删除。 1、流的概念: 输出流 程序----------->文件、网络 程序<-----------数据来源 输入流 2、流的分类: 按处理方式来分: 字节流:按8位传输 InputStream OutputStream 字符流:按16位传输 Reader Writer 按功能来分: 节点流:与文件、网络打交道的流,操作数据的来源 处理流(包装流):操作节点流 如何区分: 输入流:以InputStream、Reader结尾的流 FileInputStream BufferedReader 输出流:以OutputStream、Writer结尾的流 FileOutputStream PrintWriter 字节流:以InputStream、OutputStream结尾的流 字符流:以Reader、Writer结尾的流 节点流:看构造器,参数为数据来源,参数是String或File之类的 new FileInputStream("d:\\abc.txt"); new FileOutputStream(new File("d:\\abc.txt")) 处理流:构造器的参数为其它流 new BufferedReader(new InputStreamReader(new FileInputStream("d:\\abc.txt"))); PrintWriter 选择流时: 首先确定是输入还是输出。 其次确定是字节流还是字符流。 然后确定是节点流还是处理流。 根据数据类型选择输入/输出流: ①byte、byte[] InputStream / OutputStream ②int、byte、char、double、String DataInputStream / DataOutputStream ③char、String Reader / Writer ④Object ObjectInputStream / ObjectOutputStream 若考虑性能会在前试着加Buffered 3、常用流: DataInputStream&DataOutputStream 用于读写基本类型数据,如int、float、long、double和boolean等。 此外,DataInputStream的readUTF()方法还能读取采用UTF-8字符编码的字符串。 BufferedInputStream&BufferedOutputStream 因为利用了缓冲区,所以常用于提高读写数据的效率。 BufferedInputStream先把一批数据读入到缓冲区,接下来read方法只需要从缓冲区内获得数据,减少了物理性读取数据的次数。 可以使用BufferedInputStream(InputStream in, int size) 中的size来指定缓冲区的大小 ObjectOutputStream&ObjectInputStream 对象的序列化是指把对象写到一个输出流中, 对象的反序列化是指从一个输入流中读取一个对象。 Java语言要求只有实现了java.io.Serializable接口的类的对象才能序列化和反序列化 Reader/Writer 当需要程序读写文本文件,而且文本文件采用特定的字符编码集时,应采用Reader/Writer。 InputStreamReader & OutputStreamWriter 桥梁流 把字节流转换成字符流 在桥转换的时候可以指定编解码方式 new BufferedReader(new InputStreamReader(new FileInputStream("d:\\abc.txt"), "utf8")); BufferedReader readLine()方法可以一次读入一行字符,以字符串形式返回。 PrintWriter 输出格式化的数据,所有的写数据的方法以print开头。 print (int i) print (long l) print (float f) print (String s) 每个print() 方法都有一个println()方法对应 a. printWriter.println("Hello"); b. printWriter.print("Hello"); printWriter.println(); c. printWriter.print("Hello\n"); 以上三段代码是等价的 4、JAVA编码问题:UTF-8,GBK,GB2312是可以显示中文的。 ASCII 一个字符-----1B 任何一种编码均兼容 A<-->65 ISO8859-1 (西欧) 一个字符-----1B GB2312 / GBK 一个字符-----2B Unicode 一个字符-----2B 会增加网络负担 Java中的char是Unicode UTF-8 变长字节(变长的Unicode方式) 英文-----1B 中文-----3B 提供编码帮助的类:java.nio.charset.Charset GBK---中、日、韩,gb2312是GBK的子集 会出现中文编码问题的情况: 1、用流操作文件时 2、网页(动态、静态) 3、网络传递信息时 String--->乱码(再次转码) String temp=p.getProperty("name"); temp=new String(temp.getBytes("ISO8859-1"),"GBK");这两处的编码有时需要互换位置 对象序列化 1:定义:把对象作为一个整体,在I/O流中传播 2:语法: (1)实现了Serializeble接口的对象才能可序列化。这个接口里没有任何方法,没有方法的接口称为标记接口。 例如:class Student implements Serializeble{} (2)如果一个序列化后的对象里面有一个属性是个对象属性,那么这个对象属性也需要实现序列化。 例如:class Student implements Serializeble{ Teacher t;//必须序列化 } class Teacher implements Serializeble{} (3)包名、类名、属性可以被序列化 方法、构造器不会序列化 所有的静态属性都不会被序列化 用transient关键字修饰的属性是临时属性,临时属性不参与序列化。 (4)当父类实现Serializeble接口,子类自动实现。对象序列化会创建对象,不调用构造,但子类实现Serializeble接口, 父类没有实现实现Serializeble接口,父类在反序列化时会调用构造。 3:使用注意: a.用readObject读文件的时候,当文件结束的时候会抛出EOFException,当我们捕获这个异常的时候,程序就结束了。 Object o = null; while((o =ois.readObject()) != null) { } b.如果需要向一个文件中追加对象,首先要把文件中原有的对象读出来,再把原有对象和新追加的对象一起写入到文件。 c. serialVersionUID是静态常量,表示当前对象的版本号,在接受传输的数据时会自动检查该值,保证版本的相同。 java.util.Properties属性类,针对属性文件操作,早期使用。 好处是可以在不修改代码的情况下改变相应的需求。 文件名以.properties结尾的文件称为属性文件 文件的内容是:名字=值 的形式 常用方法: public void load(InputStream inStream)throws IOException public void store(OutputStream out,String comments)throws IOException public String getProperty(String key) public String getProperty(String key,String defaultValue) public Object setProperty(String key,String value)
发表评论
-
Java语言的8大排序的基本思想以及实例解读(转载)
2017-04-12 22:48 5248种排序之间的关系: 1, 直接插入排序 (1)基本 ... -
JAVA堆栈的区别
2009-11-10 20:34 9531. 栈(stack)与堆(heap)都 ... -
java 中执行DOS命令
2009-11-08 21:02 905Runtime r = Runtime.getRuntime( ... -
CoreJava File的基本操作实例
2009-10-07 20:50 760java File的基本操作实例 2007-10-09 16 ... -
JAVA_日期日历类的用法
2009-08-09 14:23 1839public class TestDate { publi ... -
JAVA_工厂模式(经典)
2009-07-25 20:11 1823看了这么多关于工厂模 ... -
JAVA_工厂和状态设计模式
2009-07-20 20:56 1238需要记下 简单工厂模式 生产一个系列产品(英语书,数学书)或 ... -
JAVA 观察者模式代码
2009-06-28 21:18 1291观察者模式代码 import java.util.Obser ... -
JAVA 元数据的写法
2009-06-28 21:17 859import java.lang.annotation.*; ... -
JAVA 反射常用类
2009-06-22 09:21 8351 获得class对象 public class TestC ... -
JAVA 国际化和数据日期格式化
2009-06-21 14:54 14691、国际化 public class TestResourc ... -
JAVA 网络编程的老师小结(待完善)
2009-06-19 08:46 943网络编程 1:网络传输的七层结构(从下到上)物理层---〉 ... -
JAVA 多彩小球的碰撞
2009-06-18 15:00 3198//老师代码 /////////////////////// ... -
JAVA 利用流实现文件的分割合并
2009-06-18 14:50 1369//老师代码 package tarena; impo ... -
JAVA 网络编程的常用类
2009-06-18 11:34 11291、简单Client 输入(TCP) public c ... -
JAVA swing 记事本代码
2009-06-17 12:08 2872package tarena; //老师代码 import ... -
JAVA IO流的常用类
2009-06-17 12:05 14921、简单的文件读写(FileInputStream ,File ... -
Java对象序列化使用基础
2009-06-17 09:31 677所谓对象序列化就是将 ... -
JTable中对person信息的操作
2009-06-09 11:09 912//老师代码 import java.awt.BorderL ... -
JTable是Swing编程中很常用的控件,这里总结了一些常用方法以备查阅.
2009-06-09 09:00 2126一.创建表格控件的各种方式: 1) 调用无参构造函数. J ...
相关推荐
JAVA IO流小结JAVA IO流小结JAVA IO流小结
IO流 javaio java 流
javaIO流javaIO流
彻底明白Java的IO流
Java IO流详解
Java io流的总结
java零基础自学 之 JavaIO流处理java零基础自学 之 JavaIO流处理
2、常用21个IO流:FileWriter、FileReader、...3、JAVA IO流经典代码示例,示例从易到难。代码功能涉及字节、字符、字符串、文本文件、图片、音频、视频。演示错误用法和经典用法。 4、代码的结构可查看README文件。
思维导图io流思维导图io流思维导图io流思维导图io流思维导图io流思维导图io流
这是一份关于android开发的相关资料,供初学者学习使用。
4. Java中流的概念细分 流的方向: 输入流:数据源到程序(InputStream、Reader读进来) ...节点流处于io操作的第一线,所有操作必须通过他们进行;处理流可以对节点流 进行包装,提高性能或提高程序的灵活性。
java基础之IO流,基础简介知识,帮助你了解java的io技术
javaIO流原代码,刚刚开始学习java的同志们可以看看.有问题留言.
java IO流精讲 JAVA IO流实例开发
java io流-3.pdf。。。。
关于 java io 流 方面的的引用,主要用一个例子说明!
java io流源代码 ,相关文章的源代码,文章地址: http://write.blog.csdn.net/postedit/8706349
java io 的例子有利于对io的熟悉的了解深入,希望对大家有帮助
java io流PPT课件.pptx
java io流 流基于流向,数据单位两个指标进行IO包根类构造。站在程序员的角度考虑流向问题,我们编的是程序,程序运行在内存中,进内存输入,出内存为输出。