java.io中流的操作:字节流、字符流
(1)使用File类打开一个文件
(2)通过字节流或字符流的子类指定输出的位置
(3)进行读/写操作
(4)关闭输入/输出

1、字节流:主要是byte类型数据,以byte数组为准

输出数据:OutputStream类:字节输出流最大父类
输入数据:InputStream类

(1)

//第一步:使用File类打开电脑中的一个文档,文件不存在会自动创建
File f = new File("文件路径");
//第二步:通过字节流或字符流的子类指定输出的位置
OutputStream out = null;
out= new FileOutputStream(f);
//要输出的对象
String str = "Hello World";
//只能输出byte数组,所以需要将字符串变为byte数组
byte b[] =str.getBytes();
//将内容输出
out.write(b);
//关闭输出流
out.close();

(2)

//第一步:使用File类打开电脑中的一个文档
File f = new File("文件路径");
//第二步:通过字节流或字符流的子类指定读取的位置
InputStream input = null;
input= new FileInputStream(f);
//进行读操作,读到byte数组中,开辟大小为1024内存用来放数据
byte b[] = new byte[];
input.read(b);
//关闭输入流
input.close();
//把byte数组变为字符串输出
System.out.println("内容为:"+new String(b));

2、字符流

输出数据:Writer类
输入数据:Reader类

(1)

File f = new File("文件路径");
Writer out = null;
out= new FileWriter(f);
String str = "Hello World";
out.write(str);
out.close();

不需要将字符串变为byte数组之后再输出

(2)

//第一步:使用File类打开电脑中的一个文档
File f = new File("文件路径");
//第二步:通过字节流或字符流的子类指定读取的位置
Reader reader = null;
reader= new FileReader(f);
//进行读操作,读到byte数组中,开辟大小为1024内存用来放数据
char c[] = new char[];
reader.read(c);
//关闭输入流
reader.close();
//把byte数组变为字符串输出
System.out.println("内容为:"+new String(c));

区别:字符流操作时使用了缓冲区

缓冲区:关闭字符流时会强制性地将缓冲区中的内容进行输出,没有close(),缓冲区的内容是无法输出的,flush()方法会强制性清空缓冲区内容,然后输出数据

3、转换流——字符流<——>字节流

OutputStreamWriter:是Writer的子类,将输出的字符流变为字节流(存储在文件中的只能是字节形式的数据)
InputStreamReader:是Reader的子类,将输入的字节流变为字符流(比如:BufferReader操作的只能是字符流)

java.io中流的操作:字节流、字符流的更多相关文章

  1. Java IO(十二) 字符流 Writer 和 Reader

    Java IO(十二) 字符流 Reader和 Writer 一.介绍 涉及到文件(如果是纯文本文件形式)操作时,Java除了提供 FIle(文件和目录路径名的抽象表示形式) 和 FileDescri ...

  2. -1-4 java io java流 常用流 分类 File类 文件 字节流 字符流 缓冲流 内存操作流 合并序列流

      File类 •文件和目录路径名的抽象表示形式 构造方法 •public File(String pathname) •public File(String parent,Stringchild) ...

  3. IO流(字节流,字符流,缓冲流)

    一:IO流的分类(组织架构) 根据处理数据类型的不同分为:字节流和字符流 根据数据流向不同分为:输入流和输出流   这么庞大的体系里面,常用的就那么几个,我们把它们抽取出来,如下图:   二:字符字节 ...

  4. java.io包中的字节流—— FilterInputStream和FilterOutputStream

    接着上篇文章,本篇继续说java.io包中的字节流.按照前篇文章所说,java.io包中的字节流中的类关系有用到GoF<设计模式>中的装饰者模式,而这正体现在FilterInputStre ...

  5. JAVA IO分析二:字节数组流、基本数据&对象类型的数据流、打印流

    上一节,我们分析了常见的节点流(FileInputStream/FileOutputStream  FileReader/FileWrite)和常见的处理流(BufferedInputStream/B ...

  6. Java IO(五)字节流 FileInputStream 和 FileOutputStream

    Java IO(五)字节流 FileInputStream 和 FileOutputStream 一.介绍 字节流 InputStream 和 OutputStream 是字节输入流和字节输出流的超类 ...

  7. Java之IO流(字节流,字符流)

    IO流和Properties IO流 IO流是指计算机与外部世界或者一个程序与计算机的其余部分的之间的接口.它对于任何计算机系统都非常关键, 因而所有 I/O 的主体实际上是内置在操作系统中的.单独的 ...

  8. 【C#IO 操作】stream 字节流|字符流 |比特流

    stream的简介 Stream 所有流的抽象基类. 流是字节序列的抽象,例如文件.输入/输出设备.进程中通信管道或 TCP/IP 套接字. Stream类及其派生类提供这些不同类型的输入和输出的一般 ...

  9. java 输入输出IO流 字节流| 字符流 的缓冲流:BufferedInputStream;BufferedOutputStream;BufferedReader(Reader in);BufferedWriter(Writer out)

    什么是缓冲流: 缓冲流的基本原理,是在创建流对象时,会创建一个内置的默认大小的缓冲区数组,通过缓冲区读写,减少系统IO次数,从而提高读写的效率. 图解: 1.字节缓冲流BufferedInputStr ...

随机推荐

  1. poj3347Kadj Squares

    链接 这题其实与几何没太大关系,还不错的题目. 参考吴永辉的算法设计书. 用lefi.rigi分别表示正方形在x轴上的投影. 为了避免用小数,把边长都扩大sqrt(2)倍,这样lef1 = 0,rig ...

  2. hdu 4414 Finding crosses

    题目链接:hdu 4414 其实是一道简单的字符型水题,不涉及任何算法,可比赛时却没能做出来,这几天的状态都差到家了... 题目大意是求有多少个满足条件的十字架,十字架的边不能有分叉路口,所以枚举每个 ...

  3. svn设置提交忽略某些文件或文件夹

    在svn客户端,想设置忽略提交.class文件,通过 properties > New > Other 添加一个忽略的属性,,还是不行:部分屏蔽了,部分class还是在列表中 再次参考了一 ...

  4. 转!!Java垃圾回收机制

    1. 垃圾回收的意义 在C++中,对象所占的内存在程序结束运行之前一直被占用,在明确释放之前不能分配给其它对象:而在Java中,当没有对象引用指向原先分配给某个对象的内存时,该内存便成为垃圾.JVM的 ...

  5. python 练习 16

    #!/usr/bin/python # -*- coding: UTF-8 -*- import time myD = {1: 'a', 2: 'b'} for key, value in dict. ...

  6. js中tagName和nodeName

    DOM里常见的三种节点类型(总共有12种,如docment):元素节点,属性节点以及文本节点,例如<h2 class="title">head</h2>,其 ...

  7. ubuntu下python3安装scrapy,OpenSSL

    环境:ubuntu 16.04  ,  python3.5.1+ 安装顺序如下: sudo apt-get install build-essential sudo apt-get install p ...

  8. NetworkShareAccesser: 远程PC1 文件 copy 到PC2 文件夹

    Usage: string strRepoBundlePath = @"\\at1-repo01\ATE\Bundles\SharePoint\Open\denyopen.zip" ...

  9. python中的binascii

    import binascii as B s = 'abcde' h = B.b2a_hex(s) # 字符串转16进制 '6162636465' h = B.hexlify(s) # 作用同上 s ...

  10. hdu----(5053)the Sum of Cube(签到题,水体)

    the Sum of Cube Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others)T ...