io流

IO流

◇◆丶佛笑我妖孽 提交于 2019-12-21 12:10:57
流动的是数据—用于传输数据的一套API—IO->Input和Output—输入流和输出流—当数据是从外部流向程序的时候,输入流;数据是从程序流向外部的时候,输出流。读取文件—将数据从文件读到程序中—输入流;向文件中写入数据—数据从程序流向了文件—输出流。 根据数据的传输方向:输入流、输出流 根据数据的传输形式:字节流、字符流 这四个基本流都是抽象类。 数据来源(目的地):硬盘,网络,输入设备,内存 FileWriter 向txt文件写入一个字符串—输出流,字符流,和 文件有关的流 —FileWriter FileWriter(String path)—创建一个新文件。如果文件不存在,会创建一个新文件。 FileWriter继承了OutputStreamWriter。 流操作的过程: 创建流→流出数据→冲刷缓冲区→关闭流。 最后将流对象赋值为null标记为一个垃圾对象。 构造函数 : ①FileWriter(File file); 无论文件是否存在,都会创建一个新的文件覆盖原来的文件。 ②FileWriter(File file,boolean append); 是否追加内容。如果存在目标文件,不会删除原文件。 ③FileWriter(String fileName); 根据给定的文件名fileName构造一个对象。 ④FileWriter(String fileName

Java IO流详解

£可爱£侵袭症+ 提交于 2019-12-21 05:08:12
参考转载地址: https://blog.csdn.net/zhangliangzi/article/details/51226652         http://www.cnblogs.com/ysocean/p/6870069.html         https://www.cnblogs.com/jmsjh/p/7761272.html         http://blog.csdn.net/hguisu/article/details/7418161 1.什么是IO Java中I/O操作主要是指使用Java进行输入,输出操作. Java所有的I/O机制都是基于数据流进行输入输出,这些数据流表示了字符或者字节数据的流动序列。Java的I/O流提供了读写数据的标准方法。任何Java中表示数据源的对象都会提供以数据流的方式读写它的数据的方法。 IO又分为流IO(java.io)和块IO(java.nio) Java.io是大多数面向数据流的输入/输出类的主要软件包。此外,Java也对块传输提供支持,在核心库 java.nio中采用的便是块IO。 流IO的好处是简单易用,缺点是效率较低。块IO效率很高,但编程比较复杂。 这里先讲流IO。 2.流的基本概念 在电脑上的数据有三种存储方式,一种是外存,一种是内存,一种是缓存。比如电脑上的硬盘,磁盘,U盘等都是外存,在电脑上有内存条

JavaSE 文件与IO 流

匆匆过客 提交于 2019-12-19 03:21:24
流 代表有能力产生数据的数据源对象或者有能力接收数据的接收端对象。 面向字节: InputStream OutputStream 面向字符: Reader Writer InputStream OutputStream 字节流 不同的数据源有不同的InputStream子类与之对应 流 作用 FileInputStream 从文件中读取信息 StringBufferInputStream 将String转换为InputStream SequenceInputStream 将两个及以上InputStream转换为单一的InputStream ByteArrayInputStream 将内存缓冲区当作InputStream PipeInputStream 实现管道化概念 FilterInputStream 抽象类作为装饰器的接口 FilterInputStream 装饰器修改流满足特殊需求 DataInputStream 与 DataOutputStream搭配使用,按照可移植的方式读取基本数据类型 BufferedInputStream 防止每次读取缓冲区时都要进行写操作 使用 文件字节输出流 向磁盘中写入数据 public static void main ( String [ ] args ) throws IOException { //不存在直接创建 File f = new

IO流——字节流

大城市里の小女人 提交于 2019-12-18 03:44:35
一、字节输出流 OutputStream OutputStream为抽象类,是表示输出字节流的所有类的超类。操作的数据都是字节,定义了输出字节流的基本共性方法。 1、方法: void close():关闭此输出流并释放与此流有关的所有系统资源。 void flush():刷新此输出流并强制写出所有缓冲的输出字节。 void write(byte[] b):将b.length个字节从指定的byte数组写入此输出流。 void write(byte[] b, int off, int len):将指定byte数组中从偏移量 off 开始的 len 个字节写入此输出流。 abstract void write(int b):将指定的字节写入此输入流。 2、FileOutputStream类 OutputStream 有很多子类,其中子类 FileOutputStream 可用来将数据写入到文件中。 FileOutputStream 类,即文件输出流,是用于将数据写入到 File 的输出流。 FileOutputStream 类的构造方法: FileOutputStream(File file):创建一个向指定File对象表示的文件中写入数据的文件输出流 FileOutputStream(String name):创建一个向具有指定名称的文件中写入数据的文件输出流 2.1

io 流demo

﹥>﹥吖頭↗ 提交于 2019-12-18 03:38:18
/* * 需求:作业:将c盘的一个文本文件复制到d盘。 * * 思路: * 1,需要读取源, * 2,将读到的源数据写入到目的地。 * 3,既然是操作文本数据,使用字符流。 * */ public class CopyTextTest { /** * @param args * @throws IOException */ public static void main(String[] args) throws IOException { //1,读取一个已有的文本文件,使用字符读取流和文件相关联。 FileReader fr = new FileReader("IO流_2.txt"); //2,创建一个目的,用于存储读到数据。 FileWriter fw = new FileWriter("copytext_1.txt"); //3,频繁的读写操作。 int ch = 0; while((ch=fr.read())!=-1){ fw.write(ch); } //4,关闭流资源。 fw.close(); fr.close(); } } public class CopyTextTest_2 { private static final int BUFFER_SIZE = 1024; /** * @param args */ public static void main

JAVA IO流

帅比萌擦擦* 提交于 2019-12-16 08:55:59
JAVA中的流分为输入流和输出流。其实还有打印流 输入流又分字节输入流和字符输入流(InputStream和Reader); 输出流又分字节输出流和字符输出流(OutputStream和Writer)。 网上找了张流接口的图 输入流: 字节输入流: InputStream :是所有的输入字节流的父类,它是一个抽象类。 FileInputStream:主要用来操作文件输入流。 read():从流中读取1个字节的数据,返回结果是一个int BufferedInputStream:字节缓冲流,提高效率。通常传入一个字节输入流实例化该对象再进行read操作 字符输入流: Reader:是字符输入流的抽象基类 FileReader :文件字符输入流。 BufferedReader:缓冲流,可以把字符输入流进行封装,将数据进行缓冲,提高读取效率 InputStreamReader :特殊输入流,转换流,用于字节输入流到字符输入流的转换(解决编码问题)。实例如下: public static void main(String[] args) throws IOException { //创建字节输入流 InputStream inputStream=new FileInputStream("D:\\字节缓冲输出流.txt"); //创建输入转换流 InputStreamReader

java IO流三:字符流 FileReader & FileWriter

假如想象 提交于 2019-12-16 03:35:03
FileReader package com . company01 . IO ; /* java.io.Reader; java.InputStreamReader; 转换流(字节输入流 ---> 字符输入流) java.io.FileReader; 文件字符输入流 只能读取纯文本,字符流可以一次读取一个汉字,而字节流只能读取汉字的一半,字节流容易出现乱码 */ import java . io . * ; public class FileReadrTest01 { public static void main ( String [ ] args ) { FileReader fr = null ; try { fr = new FileReader ( "test01" ) ; // 开始读 char [ ] chars = new char [ 215 ] ; // 1KB int temp = 0 ; while ( ( temp = fr . read ( chars ) ) != - 1 ) { // 将char数组有效部分转换成字符串 System . out . print ( new String ( chars , 0 , temp ) ) ; } } catch ( Exception e ) { e . printStackTrace ( ) ; }

java IO——字节流与字符流

梦想的初衷 提交于 2019-12-14 03:07:09
本节目标: 1.掌握流的概念 2.掌握字节流与字符流的作用 3.掌握文件的标准操作步骤 4.掌握字节与字符的操作的区别 1. 流 在程序中,所有的数据都是以流的方式进行传输和保存的,程序需要数据的时候需要输入流读取数据,而当程序需要将数据保存起来的时候,需要输出流完成。如下图所示。 2. 字节流与字符流 在java.io 包中,操作文件内容的主要有两大类:字节流、字符流。两类都分为输入和输出操作。字节流输出数据主要是使用OutputStream完成,输入使用InputStream完成;字符流输出数据主要是使用Writer类完成,输出数据使用Reader类完成。 以文件操作为例,操作流程为: 1)使用File类打开一个文件 2)通过字节流或字符流的子类,指定输出的位置 3)进行读/写操作 4)关闭输入/输出流 注意:使用File类时注意分隔符问题;以上四个类都是抽象类;IO操作属于资源操作,对于资源操作,操作完后必须关闭,否则可能会出现未知的错误。 3.字节流 常用的字节流总结,参考博文,点击这里 字节流主要是操作byte类型数据,以byte数组为准,主要操作类时字节输入流InputStream、字节输出流OutputStream. 3.1 字节输出流-OutputStream OutputStream是整个io包中字节输出流的最大父类,此类定义如下: public abstract

Java中try()...catch()用法

我的梦境 提交于 2019-12-14 02:14:34
在 stackoverflow 偶尔看到的一个关于try()...catch()的用法,通常我们使用try...catch()捕获异常的,如果遇到类似IO流的处理,要在finally部分关闭IO流,当然这个是JDK1.7之前的写法了;在JDK7优化后的 try-with-resource 语句,该语句确保了每个资源,在语句结束时关闭。所谓的资源是指在程序完成后,必须关闭的流对象。写在()里面的流对象对应的类都实现了自动关闭接口 AutoCloseable ;   格式: 1 2 3 4 5 try (创建流对象语句,如果多个,使用 ';' 隔开) { // 读写数据 } catch (IOException e) { e.printStackTrace(); }   演示代码,下面的test目录是不存在的,运行会抛出异常; JDK1.7之前 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 FileWriter fw = null ; try { fw = new FileWriter( "test\\test.txt" ); fw.write( "test" ); } catch (Exception ex) { ex.printStackTrace(); } finally { if (fw != null ) { try { fw.close();

IO流

浪尽此生 提交于 2019-12-13 08:23:22
字符流的由来   字节流读取文字字节数据后,不直接进行操作而是先查指定的编码表,获取对应的文字。再对这个文字进行操作。简单讲:字节流+编码表。 字节流的两个顶层抽象基类 InputStream OutputStream 字符流的两个顶层抽象基类 Reader Writer 这些体系的子类都以父类名作为后缀,而且,子类名的前缀就是该对象的功能。 将一些文字存储到硬盘中的一个文件中 记住:如果要操作文字数据,优先考虑字符流。而且要将数据从内存写到硬盘上,要使用字符流中的输出流——Writer。 硬盘的数据基本体现是文件,希望可以找到一个可以操作文件的Writer,最终找到了FileWriter。 读取一个文本文件。将读取到的字符打印到控制台。 同上,找到FileReader。 来源: CSDN 作者: ziminrenweimuhuo 链接: https://blog.csdn.net/ziminrenweimuhuo/article/details/103470063