Java Io 流(输入输出流)
来源:互联网 发布:获取intent数据 编辑:程序博客网 时间:2024/05/29 13:46
IO流,也就是输入和输出流,可分为字节流和字符流。
1. 字节流
(1). InputStream 输入流,用于读取文件
输入流常用API:
inputStream.read() 读取一个字节
inputStream.read(byte[] buffer) 读取数据填充字节数组
inputStream.read(byte[] buffer, int start, int size) 读取数据到字节数组buffer中,从buffer的start位置开始,到size长度的数据
(2). OutputStream 输出流, 用于写入文件
输出流常用API:
outputStream.write(int b) 写一个字节到流中
outputStream.write(byte[] buffer) 写一个字节的数据到流中
outputStream.write(byte[] buffer, int start, int size) 写字节数据buffer从start位置开始到size长度的字节到流中
(3). 常用实现类
<1>. FileInputStream 文件输入流,封装了从磁盘读取文件到流中的操作,事例代码如下:
package com.dcz.io;import java.io.FileInputStream;import java.io.IOException;import java.io.InputStream;public class IOUtil {/** * 文件输入流的DEMO-1 * 读取指定文件内容,按照16进制输出到控制台 * 输出10个byte换行 * @param fileName * @throws IOException */public static void printHex(String fileName) throws IOException{InputStream ins = new FileInputStream(fileName);int b;int i = 1;// 读取到-1说明读取结束while((b = ins.read()) != -1){// 读取每一个字节转换成16进制显示System.out.print(Integer.toHexString(b) + " ");if(i++ % 10 == 0){System.out.println();}}ins.close();}/** * 文件输入流的DEMO-2 * 读取指定文件内容,按照16进制输出到控制台 * 输出10个byte换行 * @param fileName * @throws IOException */public static void printHexByByteArray(String fileName) throws IOException{InputStream ins = new FileInputStream(fileName);// 第一种写法,因为有可能这个字节数组放不下。 一次性读取/*byte[] buffer = new byte[20 * 1024];int byteSize = ins.read(buffer, 0, buffer.length);int j=1;for(int i=0; i<byteSize; i++){System.out.print(Integer.toHexString(buffer[i]) + " ");if(j++ % 10 == 0){System.out.println();}}*/// 第二种写法,循环读取int j = 1;int b;byte[] buffer = new byte[10];while((b = ins.read(buffer, 0, buffer.length)) != -1){for(int i=0; i<b; i++){System.out.print(Integer.toHexString(buffer[i]) + " ");if(j++ % 10 == 0){System.out.println();}}}ins.close();}public static void main(String[] args) {try {IOUtil.printHexByByteArray("E:\\demo.txt");} catch (IOException e) {e.printStackTrace();}}}
<2>. FillOutputStream 文件输出流。封装了从输入流中写入文件到磁盘操作。事例代码如下:
package com.dcz.io;import java.io.File;import java.io.FileInputStream;import java.io.FileOutputStream;import java.io.IOException;import java.io.InputStream;import java.io.OutputStream;public class IOUtil {/** * 将内容写到指定文件中 * @param fileName * @throws IOException */public static void writeToFile(String fileName) throws IOException{OutputStream os = new FileOutputStream(fileName);os.write('a');os.write('b');int i = 10;os.write(i >>> 24);os.write(i >>> 16);os.write(i >>> 8);os.write(i);String str = "中国人";byte[] b = str.getBytes("gbk");os.write(b);os.close();}/** * 简单的文件拷贝操作 * @param src * @param desc * @throws Exception */public static void copyFile(File src, File dest) throws Exception{if(!src.exists()){throw new IllegalAccessException("文件不存在!");}// 创建文件输入流对象InputStream inputstream = new FileInputStream(src);// 创建文件输出流对象OutputStream outputStream = new FileOutputStream(dest);int b;byte[] buffer = new byte[2048];// 循环读取文件内容到字节序列中,直到读取结束while((b = inputstream.read(buffer, 0, buffer.length)) != -1){// 写入一个缓冲字节序列到磁盘中outputStream.write(buffer);outputStream.flush();}outputStream.close();inputstream.close();}public static void main(String[] args) {File scrFile = new File("D:\\cglib-3.1.jar");File destFile = new File("E:\\abc.jar");try {//IOUtil.writeToFile(fileName);//IOUtil.printHex(fileName);IOUtil.copyFile(scrFile, destFile);} catch (IOException e) {e.printStackTrace();} catch (Exception e) {e.printStackTrace();}}}
0 0
- JAVA输入输出流(IO)
- Java IO输入输出流
- java io 输入输出流
- Java IO(输入输出流)
- Java输入输出流IO
- JAVA-IO输入输出流
- Java-IO-输入输出流
- java io 输入输出流
- java io (java输入输出流)详解
- Java Io 流(输入输出流)
- java IO-输入输出流(一)
- java IO-输入输出流(二)
- java IO-输入输出流(三)
- java IO-输入输出流(四)
- java IO-输入输出流(五)
- (Java复习与IO输入输出流)
- java Io总结一(输入输出流)
- Java输入输出流IO(1)
- 初学软件工程——(一、二章)
- hdu1069
- linux下杀死进程(kill)的N种方法
- 解决Sublime Text 3 乱码
- 1003. 我要通过!(20)
- Java Io 流(输入输出流)
- PHP常量官方文档解释
- 求和问题总结(leetcode 2Sum, 3Sum, 4Sum, K Sum)
- 【C++】实现STL模板类string
- 详解int main (int argc, char *argv[])
- Ajax学习之可编辑表格
- Twitter 帐号申请解封
- Android客户端解析服务器端WebService返回来的JSON数据(有源码,调试成功)
- Hadoop 案例7-----日志分析:分析非结构化文件