字节流:
        FileInputStream读取,FileOutputStream输出

  字节流使用数组缓冲区复制文件,最后得出所使用的时间

         public class work2 {
public static void main(String[] args) {
FileOutputStream out=null;
FileInputStream in=null;
Date a=new Date();
try {
out=new FileOutputStream("D:\\test\\d\\eclipse.zip");
in=new FileInputStream("D:\\test\\eclipse.zip");
byte[] b=new byte[1024*1024];
int len=0; while((len=in.read(b))!=-1)
{
out.write(b,0,len);
}
} catch (IOException e) { e.printStackTrace();
}finally{
try {
out.close();
} catch (IOException e) { e.printStackTrace();
}
try {
in.close();
} catch (IOException e) { e.printStackTrace();
}
}
Date b=new Date();
System.out.println(b.getTime()-a.getTime());
}
}

字符流:
        FileReader 字节流读取  FileWriter 字节流输出

  字节流使用数组缓冲区复制文件

         public class copy {
public static void main(String[] args) throws IOException {
FileReader fr=new FileReader("D:\\test\\a.txt");
FileWriter fw=new FileWriter("D:\\test\\d\\a.txt");
char[] ch=new char[2];
int len=0; while((len=fr.read(ch))!=-1)
{
fw.write(ch,0,len);
System.out.println((char)len);
fw.flush();
}
fw.close();
fr.close();
}
}

转换流:

  借助字节流写入方法,将字节流转换成字符流并且规定编码格式,例如编码格式为utf-8
        FileOutputStream fo=new FileOutputStream("D:\\test\\d\\utf.txt");

OutputStreamWriter osw=new OutputStreamWriter(fo, "utf-8");

FileInputStream fi=new FileInputStream("D:\\test\\utf.txt");

InputStreamReader isr=new InputStreamReader(fi,"utf-8");

缓冲区:
        //字符流缓冲区
        FileReader fr=new FileReader("D:\\test\\aaa.txt");
        BufferedReader br=new BufferedReader(fr);
        //明确目的地
        FileWriter fw=new FileWriter("D:\\test\\d\\aaa.txt");
        BufferedWriter bw=new BufferedWriter(fw);

//字节流缓冲区
        FileInputStream fi=new FileInputStream("D:\\codetool\\eclipse.zip");
        BufferedInputStream bi=new BufferedInputStream(fi);
        FileOutputStream fo=new FileOutputStream("D:\\test\\eclipse.zip");
        BufferedOutputStream bo=new BufferedOutputStream(fo);

  跨平台换行:.newLine();
  读取一整行:readline();

Properties类
用于操作配置文件,后缀名只能是properties的文件

方法:
    load(input字符流或字节流对象);
    store(output字符流或字节流对象,描述信息);
        
写入:
    创建对象:Properties prop = new Properties();
    写入prop集合:prop.setProperty("周迅", "张学友");
    创建字符流文件写入:FileWriter out = new FileWriter("prop.properties");
    写入:prop.store(out,"描述");

取出:
    创建集合:Properties prop = new Properties();
        创建流对象:
        FileInputStream in = new FileInputStream("prop.properties");
              //FileReader in = new FileReader("prop.properties");
        把流所对应文件中的数据 读取到集合中:
        prop.load(in);
        4,关闭流:
        in.close();
        5,显示集合中的数据:
        System.out.println(prop);

IO字节流与字符流的操作的更多相关文章

  1. IO流回顾与总结第一篇之字节流与字符流的操作。。。。。

    一.引言 趁着年后的这点时间,抓紧点时间回顾下javase中的IO流,以往都是用到那些常用的IO类,这次来个全点的,有不对的地方还请大神指正一下,做到坚持写博的习惯来...... 回归正题,IO流顾名 ...

  2. JAVA IO 字节流与字符流

    文章出自:听云博客 题主将以三个章节的篇幅来讲解JAVA IO的内容 . 第一节JAVA IO包的框架体系和源码分析,第二节,序列化反序列化和IO的设计模块,第三节异步IO. 本文是第一节.     ...

  3. 14、IO (字节流、字符流)

    输入和输出 * A:输入和输出 * a: 参照物 * 到底是输入还是输出,都是以Java程序为参照 * b: Output * 把内存中的数据存储到持久化设备上这个动作称为输出(写)Output操作 ...

  4. 字节流与字符流简单操作(OutputStream、InputStream、Writer、Reader)

    操作流程 使用File类打开一个文件 通过字节流或者字符流的子类.指定输出的位置. 进行读/写操作 关闭输入/出 字节流与字符流 在java.io包中操作文件内容主要有两大类:字节流字符流.两大类分为 ...

  5. Java IO 字节流与字符流 (三)

    概述 IO流用来处理设备之间的数据传输 Java对数据的操作时通过流的方式 Java用于操作流的对象都在IO包中 流按操作的数据分为:字节流和字符流 流按流向不同分为:输入流和输出流 IO流常用基类 ...

  6. Java IO 字节流与字符流 (二)

    1. 什么是流 Java中的流是对字节序列的抽象,我们可以想象有一个水管,只不过现在流动在水管中的不再是水,而是字节序列.和水流一样,Java中的流也具有一个“流动的方向”,通常可以从中读入一个字节序 ...

  7. Java提高篇(二):IO字节流、字符流和处理流

    在我们的Java语言当中,通常会有对文件进行读写,因此我们引入java的IO类来进行文件的读写. 一.字节流 下面是一个字节流的实例: import java.io.*; public class I ...

  8. Java IO 字节流与字符流 (五)

    Java的IO流分为字符流(Reader,Writer)和字节流(InputStream,OutputStream),字节流顾名思义字节流就是将文件的内容读取到字节数组,然后再输出到另一个文件中.而字 ...

  9. java 字节流与字符流的区别

    字节流与和字符流的使用非常相似,两者除了操作代码上的不同之外,是否还有其他的不同呢?实际上字节流在操作时本身不会用到缓冲区(内存),是文件本身直接操作的,而字符流在操作时使用了缓冲区,通过缓冲区再操作 ...

随机推荐

  1. Spring.getBean()流程和循环依赖的解决

    getBean流程介绍(以单例的Bean流程为准) getBean(beanName) 从BeanFactory中获取Bean的实例对象,真正获取的逻辑由doGetBean实现. doGetBean( ...

  2. uniq 只能相邻行去重

    uniq只可以将相邻行重复数据进行去重处理: [root@localhost /data/mysql/mysql3306]#last | cut -d ' ' -f 1 | tail -15 > ...

  3. db2 锁表

    2019独角兽企业重金招聘Python工程师标准>>> 查询锁表情况 db2 => get snapshot for locks on databasename 可以看到什么表 ...

  4. Nginx模块开发(1)————类helloworld

    Nginx看了一点了,准备写个helloworld试试,觉得只看书的话很多东西都乱乱的,晕晕的,印象不深. 我的helloworld模块的目的就是:能够在浏览器里输入http://你的ip地址/lcw ...

  5. 2-JVM内存模型

    内存模型 方法区 JDK1.7 之前包含1.7 将方法区称为 Perm Space 永久代 JDK1.8之后包含1.8 将方法区称为 MetaSpace 元空间. 堆(分配内存会大一些) 分配对象.n ...

  6. MATLAB矩阵的表示

    矩阵是matlab中最基本的数据对象. l  矩阵的建立 l  冒号表达式 l  结构矩阵和单元矩阵 1.矩阵的建立 (1)利用直接输入法建立矩阵:将矩阵的元素用中括号括起来,按矩阵行的顺序输入各元素 ...

  7. Spring源码阅读 之 配置的读取,解析

    在上文中我们已经知道了Spring如何从我们给定的位置加载到配置文件,并将文件包装成一个Resource对象.这篇文章我们将要探讨的就是,如何从这个Resouce对象中加载到我们的容器?加载到容器后又 ...

  8. 遍历HashMap常用的的三种方式

    遍历HashMap常用的的三种方式 HashMap是我们使用非常多的集合之一,下面就来介绍几种常用的HashMap的遍历方式. 1.首先定义一个新的HashMap,并往里面添加一些数据. HashMa ...

  9. [hdu4552]最长公共前缀

    题意:给一个串s,求s的每个前缀出现次数之和. 思路:对于一个后缀i,设i和原串的最长公共前缀为k,则当前总共可以产生k个答案.因此原题转化为求所有后缀与原串的最长公共前缀之和.模板题.以下为通过模板 ...

  10. WIn7系统下配置Java环境变量

    给个官网下载地址  :https://www.oracle.com/technetwork/java/javase/downloads/jdk8-downloads-2133151.html 1.首先 ...