北京晚报(阴三儿),嫁colle,永山爱
IO流是指计算机与外部世界或者一个程序与计算机的其余部分的之间的接口。它对于任何计算机系统都非常关键,
因而所有 I/O 的主体实际上是内置在操作系统中的。单独的程序一般是让系统为它们完成大部分的工作。
在 Java 编程中,一直使用流的方式完成 I/O。所有 I/O 都被视为单个的字节的移动,
通过一个称为 Stream 的对象一次移动一个字节。流 I/O 用于与外部世界接触。它也在内部使用,
用于将对象转换为字节,然后再转换回对象。输入也叫做读取数据,输出也叫做作写出数据。
数据流向:
数据类型(计算机内的数据存储都是以字节的形式存储的):
几个字节表示一个字符? 不一定.
数据流向:
数据类型:
构造方法(如果指定的文件不存在,则创建对象;存在,会清空文件中的数据(除非使用后两个构造方法,字符流同理)):
常用方法:
使用步骤:
关闭流
public static void main(String[] args) throws Exception { // 使用构造方法创建FileOutputStream对象 FileOutputStream fos = new FileOutputStream("F:\\bbb\\wangzhi.txt"); // FileOutputStream fos2 = new FileOutputStream(new File("F:\\bbb\\wangzhi.txt")); // 调用write方法向文件中输出内容 // int字节,查询ASICC表 fos.write(97); fos.write(65); fos.write(98); fos.write(66); fos.write(99); fos.write(new byte[]{67,100,68}); fos.close(); }
构造方法(文件必须存在,不存在抛异常):
常用方法:
void close() : 关闭此文件输入流并释放与流相关联的任何系统资源。
// 使用字节流复制图片 public static void main(String[] args) throws IOException { FileInputStream fis = new FileInputStream("D:\\美女.jpg"); FileOutputStream fos = new FileOutputStream("F:\\bbb\\美女.jpg"); /*long start = System.currentTimeMillis(); byte[] arr = new byte[1024 * 4]; int len; while((len = fis.read(arr)) != -1){ fos.write(arr,0,len); } long end = System.currentTimeMillis(); System.out.println(end - start);*/ byte[] arr1 = new byte[1024 * 4]; int len1; StringBuilder sb = new StringBuilder(); while((len1 = fis.read(arr1)) != -1){ sb.append(new String(arr1,0,len1)); } fos.write(sb.toString().getBytes()); /*System.out.println(System.currentTimeMillis() - end);*/ fos.close(); fis.close(); }
使用字节流去读中文(一个中文占据3个字节)可能出现乱码.
构造方法:
常用方法:
构造方法:
常用方法:
void close()
关闭流,先刷新。
// 复制txt文件 public static void main(String[] args) throws IOException { // 创建字符输入流 FileReader fr = new FileReader("wangzhi.txt"); // 创建字符输出流 FileWriter fw = new FileWriter("wangzhi2.txt"); // 读取资源 char[] arr = new char[1024]; int len; StringBuilder sb = new StringBuilder(); while((len = fr.read(arr)) != -1){ sb.append(arr); } fw.write(sb.toString()); // 关闭流 fw.close(); fr.close(); }
如对本文有疑问,请在下面进行留言讨论,广大热心网友会与你互动!! 点击进行留言回复
浅析我对 String、StringBuilder、StringBuffer 的理解
使用IDEA搭建SSM框架的详细教程(spring + springMVC +MyBatis)
Springboot整合freemarker 404问题解决方案
引入mybatis-plus报 Invalid bound statement错误问题的解决方法
网友评论