JAVA中inputStream/OutputStream字节输入流、输出流读写文件
来源:互联网 发布:百度云限速破解 知乎 编辑:程序博客网 时间:2024/05/17 07:58
好记性不如赖笔头……
注意:InputStream/OutputStream是抽象类,不能被实例化,只能实例化其子类,且是字节流,不是字符流
InputStream is = new FileInputStream(“a.txt”); 等同于 InputStream is = new FileInputStream(new File(“a.txt”));
OutputStream类似与之类似,
package com.Ckinghan.outputStream;import java.io.FileInputStream;import java.io.FileNotFoundException;import java.io.FileOutputStream;import java.io.IOException;import java.io.InputStream;import java.io.OutputStream;public class OutputStreamDemo { public static void main(String[] args) { /** * 使用字节流写入文件 */ outputStreadRead(); /** *字节流的数据读取方式一:每次读取一个字节 */ inputStreamReader(); /** * 字节流的数据读取方式二:每次读取一定长度的字节,建议使用 */ inputStreamReader1(); /** * 字节流的数据读取方式三:每次读取一定长度的字节从指定的数组索引上保存数据 */ inputStreamReader2(); } /** * @描述:字节流的数据读取方式三:每次读取一定长度的字节从指定的数组索引上保存数据 * @创建时间: */ public static void inputStreamReader2(){ //创建字节对象 InputStream inputStream = null; try { //实例化对象 inputStream = new FileInputStream("JavaIOOutputStreamReader.java"); /** * 每次读取一定长度的字节从指定的数组索引上保存数据,可以读取中文(文件中的数据为:OutputStreamp测试写入数据) */ //定义每次读取字节的大小与保存字节的数据 byte[] bs = new byte[1024]; //定义每次读取的长度 int len = -1; /** * inputStream.read(bs,1,10); 参数说明: * bs:数组,每次最大可以保存1024个字节 * 1 :指定的索引位置,这里是从bs数组的索引1个开始保存数据 * 10:从inputStream读取的字节个数,从0开始,注意,如果读取的数据中文,而读取的字节个数为奇数,可能会现无法识别或错误的数据 */ len = inputStream.read(bs,1,10); //输出字符,注意:在输出时,应从指定的索引位置进行读取 System.out.println(new String(bs,1,len)); } catch (FileNotFoundException e) { e.printStackTrace(); }catch(IOException e){ e.printStackTrace(); }finally { //关闭流 if(inputStream != null){ try { inputStream.close(); } catch (IOException e) { e.printStackTrace(); } } } } /** * @描述:字节流的数据读取方式二:每次读取一定长度的字节,建议使用 * @创建时间: */ public static void inputStreamReader1(){ //创建字节对象 InputStream inputStream = null; try { //实例化对象 inputStream = new FileInputStream("JavaIOOutputStreamReader.java"); /** * 读取一定长度的字节数据,建议使用,可以读取中文(文件中的数据为:OutputStreamp测试写入数据) * 读取结果为:OutputStreamp测试写入数据 */ //定义每次读取字节的大小与保存字节的数据 byte[] bs = new byte[1024]; //定义每次读取的长度 int len = -1; //循环读取数据,如果读取的数据为-1,说明已经读取了末尾 while((len = inputStream.read(bs)) != -1){ //输出字符 System.out.println(new String(bs,0,len)); } } catch (FileNotFoundException e) { e.printStackTrace(); }catch(IOException e){ e.printStackTrace(); }finally { //关闭流 if(inputStream != null){ try { inputStream.close(); } catch (IOException e) { e.printStackTrace(); } } } } /** * @描述:字节流的数据读取方式一:每次读取一个字节 * @创建时间: */ public static void inputStreamReader(){ //创建对象 InputStream inputStream = null; try { //实例化对象 inputStream = new FileInputStream("JavaIOOutputStreamReader.java"); /** * 每次读取一个字节,对于英文是可以的(文件中的数据为:OutputStreamp测试写入数据), * 但不能读取中文,因为编码我使用的是UTF-8,一个中文占两个字节的长度 * 读取的结果如下:OutputStreamp???????????? */ //创建读取的字符,保存的对应的acsii码 int b = -1; //循环读取字符,如果字符为-1,说明已读取到文件的末尾 while ((b = inputStream.read()) != -1) { //将读取的acsii码转换为字符并输出 System.out.print((char)b); } System.out.println(); } catch (FileNotFoundException e) { e.printStackTrace(); }catch(IOException e){ e.printStackTrace(); }finally { //关闭流 if(inputStream != null){ try { inputStream.close(); } catch (IOException e) { e.printStackTrace(); } } } } /** * @描述:使用字节流写入数据到文件中 * @创建时间: */ public static void outputStreadRead(){ //创建字节流对象 OutputStream stream = null; try { //实例化对象 stream = new FileOutputStream("JavaIOOutputStreamReader.java"); //要写入的字符串数据 String string = "OutputStreamp测试写入数据"; //将字符串数据转换为字节数组 byte[] bytes = string.getBytes(); //将字节数组写入到文件 stream.write(bytes); //清空缓冲区,将写入的数据保存 stream.flush(); //写入成功后的提示语 System.out.println("写入文件成功"); //抛出异常 } catch (IOException e) { e.printStackTrace(); }finally { //如果stream被实例化 if(stream != null){ try { //关闭字节流 stream.close(); } catch (IOException e) { e.printStackTrace(); } } } }}
4 0
- JAVA中inputStream/OutputStream字节输入流、输出流读写文件
- Java 字节流实现文件读写操作(InputStream-OutputStream)
- JAVA 的IO操作(二) 字节输出流和输入流:OutputStream和InputStream
- Java的InputStream和OutPutStream流输入与输出体会
- InputStream和OutputStream输入和输出流
- 【JavaSE学习笔记】IO流02_字节输出流OutputStream、字节输入流InputStream
- Java中 IO中的字节输入流InputStream,字节输出流InputStream
- java中Inputstream,outputstream(字节输入输出流)
- java中输入流和输出流的转换,inputstream 转换 outputstream
- Java中字节输出流 OutputStream
- I学霸官方免费教程四十二 :Java流之字节流 输入流和输出流 InputStream和OutputStream
- Java 字节流InputStream、OutputStream、FileInputStream、FileOutputStream
- Java IO 字节流 InputStream和OutputStream
- JAVA——字节流: InputStream /OutputStream
- Java 字节流InputStream、OutputStream、FileInputStream、FileOutputStream
- Java 字节流InputStream、OutputStream、FileInputStream、FileOutputStream
- InputStream和OutPutStream类定义的字节输入/输出流常用的方法
- io流的输入,字节流inputStream,outputStream的输入与输出,字符流的输入与输出 FileInputStream,FileOutputStream
- openssl源码下载及编译
- Storm在Zookeeper中的目录结构
- [开源]excel文件自动代码配置生成器
- FineReport连接多维数据库示例及操作
- 串口GPS显示坐标信息
- JAVA中inputStream/OutputStream字节输入流、输出流读写文件
- XSS跨站脚本攻击
- DPDK之(六)——内存管理
- Java分布式应用技术架构介绍
- 网络基础
- C++(7)/继承和派生
- 重温 SQL ——行转列,列转行
- tomcat(一):一次解决tomcat9无法登陆控制界面的经历
- 利用C++ Boost编写扩展Python模块