IO输入输出流
来源:互联网 发布:mac怎么更新os 编辑:程序博客网 时间:2024/05/22 15:03
IO输入输出流
把通过不同输入输出设备(键盘,显示器,网络,内存等)之间的数据传输抽象表述为“流”。
- IO输入输出流
- 字节流
- 字节输入流InputStream
- 字节输出流OutputStream
- 字符流
- 字符输入流
- 字符输出流
- 实验
- 控制台输入数据到Txt文件
- 复制图片
- 字节流
字节流
字节输入流(InputStream)
InputStream(抽象类)
|–FileInputStream:文件字节输入流,向文件进行数据传递。
|–FilterInputStream :封装其它的字节输入流,并为它们提供额外的功能。
|–BufferedInputStream:缓冲字节输入流,缓冲功能。
|–DataInputStream:数据字节输入流,允许应用程序以与机器无关方式从底层输入流中读取基本 Java 数据类型。
|–ByteArrayInputStream:字节数组输入流,包含一个内部缓冲区。
|–ObjectInputStream:对象字节输入流,用于恢复那些以前序列化的对象,对象必须实现Serializable接口。
|–SequenceInputStream:合并字节输入流,表示其他输入流的逻辑串联。
|–PipedInputStream:管道字节输入流,用于线程间数据传输。
字节输出流(OutputStream)
OutputStream(抽象类)
|–FileOutputStream:文件字节输出流。
|–FilterOutputStream:封装其他的字节输出流。
|–BufferedOutputStream:缓冲字节输出流。
|–DataOutputStream:基础数据字节输出流。
|–ByteArrayOutputStream:字节数组输出流。
|–ObjectOutputStream:对象字节输出流,专递序列化对象。
|–PipedOutputStream:管道字节输出流,可以将管道输出流连接到管道输入流来创建通信管道。
|–PrintStream:字节打印流,输出打印。
字符流
字节流+编码表
字符输入流
Reader(抽象类)
|–BufferedReader:缓冲字符输入流,具有缓冲作用。
|–LineNumberReader:跟踪行号的缓冲字符输入流。
|–CharArrayReader:字符数组输入流,此类实现一个可用作字符输入流的字符缓冲区。
|–StringReader:字符串输入流,其源为一个字符串的字符流。
|–InputStreamReaer:(输入)字节流通向字符流的桥梁。
|–FileReader,文件字符输入流,读取字符文件。
字符输出流
Writer(抽象类)
|–BufferedWriter:缓冲字符输出流。
|–CharArrayWriter:字符数组输出流。
|–StringWriter:字符串输出流。
|–OutputStreamWriter:(输出)字节流通向字符流的桥梁。
|–FileWriter:文件字符输出流。
|–PrintWriter:字符打印流,打印字符流数据。
实验
控制台输入数据到Txt文件
public void writeToTXT() throws IOException{ File file= new File("E://Test.txt"); //创建一个File对象 if(!file.exists()){ //判断File对象对应的文件或目录是否存在 file.createNewFile(); //创建File对象所指定的新文件,若已经存在不创建,返回false } BufferedReader bf = new BufferedReader(new InputStreamReader(System.in)); //获取键盘输入 FileWriter fw = new FileWriter(file); //利用往文件传递数据的字符输出流输出 String str; while((str=bf.readLine())!=null){ if("over".equals(str)){ //若回车输入“over”则结束程序 break; } fw.write(str); fw.write("\r\n"); //换行语句 fw.flush(); //刷新缓冲的输出流 } fw.close(); bf.close(); }
复制图片
public void copyPic() throws IOException{ BufferedInputStream bi = new BufferedInputStream(new FileInputStream("E://Test.jpg")); BufferedOutputStream bo = new BufferedOutputStream(new FileOutputStream("S://Test.jpg")); byte[] buff = new byte[1024]; //字节数组缓冲区 int len; long beginTime = System.currentTimeMillis(); //开始时间 while((len=bi.read(buff))!=-1){ //判断是否读到文件末尾 bo.write(buff, 0, len); //从第一个字节开始,写入len字节 } long endTime = System.currentTimeMillis(); //结束时间 System.out.println("复制消耗时间:"+(endTime-beginTime)+"毫秒"); }
- IO输入输出流
- IO输入输出流
- Java IO输入输出流
- 输入输出IO流
- java13-IO输入输出流
- IO输入输出流-2
- IO输入输出流-3
- java io 输入输出流
- IO流--输入输出
- IO(输入输出流)
- IO序列输入输出流
- IO输入输出流
- IO-输入输出流
- Java IO(输入输出流)
- Java输入输出流IO
- IO输入输出流
- JAVA-IO输入输出流
- IO输入输出流
- 计算机基础——Base64原理
- NYOJ 742 (多段子串和)
- 4年滴滴是这样子干掉30家竞争公司的
- Java中普通代码块,构造代码块,静态代码块区别及代码示例
- hadoop学习笔记
- IO输入输出流
- Android Studio基本配置
- HTML5-交易中心
- faster-rcnn 在第一阶段训练fast出现的假死 step(1)
- Oracle 存储过程
- oracle表内连接和外连接
- LINK : fatal error LNK1104: 无法打开文件
- bootstrap-ie7.css
- Tomcat的context.xml说明、Context标签讲解