JAVA流
2016-02-15 16:29
519 查看
流概念
流是一串连续不断的数据的集合,就像水管里的水流,在水管的一端一点一点地供水,而在水管的另一端看到的是一股连续不断的水流。数据写入程序可以是一段一段地向数据流管道中写入数据,这些数据段会按先向顺序形成一个长的数据流。对数据的读取程序来说,看不到数据流在写入时的分段情况,每次可以读取其中的任意长度的数据,但只能先读取前面的数据后,再读取后面的数据。不管写入时是将数据分多次写入,还是作为一个整体一次写入,读取时的效果都是完全一样的。流的分类方式
输入流和输出流
以程序为参考点,按数据流的方向不同分为输入流和输出流字节流和字符流
按处理数据的单位不同分为字节流和字符流节点流和处理流
按功能不同分为节点流和处理流流的四大抽象类
J2SDK所提供的所有流类型位于包java.io内都分别继承以下四种抽象流类型InputStream(字节输入流)
结构
基本方法
InputStream是一个抽象类,程序可以通过InputStream类从文件中把内容读取出来,首先看一下InputStream类的定义:
public abstract class InputStream extends Object implements Closeable
如果现在是从文件中读取,因为InputStream本身是一个抽象类,必须依靠其子类FileInputStream来实现, 看FileInputStream类的构造方法:
public FileInputStream(File file) throws FileNotFountException
读取文件:
import Java.io.File; import Java.io.InputStream; import Java.io.FileInputStream; import Java.io.IOException; public class ReadFile{ public static void main(String[] args)throws IOException{ File file = new File("d:"+File.separator+"test.txt"); InputStream inputstream = new FileInputStream(file); byte[] b = new byte[(int) f.length()]; inputstream.read(b); inputstream.close(); system.out.println(new String b); } }
如果一个字节一个字节读入,并且不知道文件的大小:
import Java.io.File; import Java.io.InputStream; import Java.io.FileInputStream; import Java.io.IOException; public class ReadFile{ public static void main(String[] args)throws IOException{ File file = new File("d:"+File.separator+"test.txt"); InputStream inputstream = new FileInputStream(file); byte[] b = new byte[1024]; int temp = 0; int len = 0; while((temp=inputstream.read())!=-1){//-1标志文件读完 b[len]=(byte)temp; len++; } inputstream.close(); system.out.println(new String(b,0,len)) } }
OutputStream类(字节输出流)
结构
基本方法
OutputStream类和InputStream类一样,都是抽象类,如果要操作一个文件,可以使用FileOutputStream类。
OutputStream类的定义:
public abstract class OutputStream extends Objects implements Closeable,Flushable
FileOutputStream类的构造方法:
public FileOutputStream(File file) throws FileNotFoundException
写数据:
import java.io.File; import java.io.FileOutputStream; import java.io.OutputStream; import java.io.IOException; public class WriteFile{ public static void main(string[] args) throw IOException{ File file = new File("d:" + File.separator+"test.txt"); OutputStream outputstream = new FileOutputStream(file) String str = "Hello World" byte[] b = str.getBytes(); outputstream.write(b); outputstream.close(); } }
Reader类(字符输入类)
结构
基本方法
Reader类是使用字符的方式从文件中取出数据,定义如下:
public abstract class Reader extends Objects implements Readable,Closeable
Reader本身也是抽象类,如果现在要从文件中读取内容,则可以直接使用FileReader子类。FileReader的构造方法定义如下:
public FileReader(File file)throws FileNotFoundException
读取数据:
import java.io.File; import java.io.FileReader; import java.io.Reader; import java.io.IOException; public class Read{ public static void main(string[] args)throw IOException{ File file = new File("d:" + File.separator+"test.txt"); Reader inputreader = new FileReader(file); char[] c=new char[1024]; int len=inputreader.read(c); inputreader.close(); System.out.println(new String(c,0,len)); } }
Wirter类(字符输出类)
结构
基本方法
Wirter类使用子类FileWriter向文件中写入内容
Wirter类的定义:
public abstract class Writer extends Object implements Appendable,Closeable,Flushable
FileWriter类的构造方法
public FileWriter(File file)throws IOException
写文件:
import java.io.File; import java.io.FileWriter; import java.io.IOException; import java.io.Writer; public class Test16 { public static void main(String[] args) throws IOException { File f = new File("d:" + File.separator+"test.txt"); Writer out=new FileWriter(f); String str="Hello World"; out.write(str); out.close(); } }
总结
目前对于这些内容还只是概念上的理解,没有再具体实例中看到,也没有具体实践,后面继续!相关文章推荐
- Java的多线程之阻塞队列
- java中实现四舍五入的4种方法
- spring security 3中的10个典型用法小结
- Java 高并发缓存与Guava Cache
- Dubbo与Zookeeper、SpringMVC整合和使用(负载均衡、容错)
- eclipse中的android布局文件的快捷键Alt+/不起作用的一种解决方法
- SpringMvc:在使用@RequestBody和@ResponseBody的时候报415错误
- 菜鸟学SSH(二)——Struts2国际化手动切换版
- eclipse maven 插件的安装和配置
- Struts实现多国语言切换
- How to add or list certificates from keystore or trustStore in Java - Keytool Example Read more: ht
- 各种排序算法的分析及java实现
- struts2学习笔记--拦截器(Interceptor)和登录权限验证Demo
- java中int转String类型,String类型转int类型
- 如何设置Eclipse中的文字
- Spring Boot 集成Swagger
- Spring MVC 系列(四)——Spring MVC 与Ajax交互及重定向操作
- Java中弹出对话框的方法
- Eclipse导入Github上的Robotium源码进行代码分析的步骤
- Spring-JDBC 操作SQL数据库