FileInputStream/FileOutputStream的笔记:

/**(FileInputStream/FileOutputStream四个步骤: ①声明②加载地址③read/write④close流)
* FileInputStream fis
* 1.public int read( byte[] b, int off, int len) throws IOException
* //从fis流读取字符, 后两项规定存储位置(左闭右开);默认最多b.length字节的数据到字节数组
* //int 返回值表示每次读取的字符的Byte 个数.
* FileOutputStream fos
* 1.输出的物理文件可以不存在,若不存在则可以自动创建!若存在,则会进行覆盖!
* 2.public FileOutputStream(String name,boolean append) throws FileNotFoundException
* //如果第二个参数是true ,则字节将写入文件的末尾而不是开头。
*/

三个实验的代码:

public class Test_FileInputStream {
@Test //实验1目的: 建立byte读入流,从文件读取数据, 并建立异常保护机制
public void testFileInputStream1(){ File f1=new File("D:\\SZS文件夹\\IO\\hello.txt");
FileInputStream fis=null;
byte[] date=new byte[4];
int num;
try {
fis=new FileInputStream(f1);
while((num = fis.read(date,0,4) ) != -1){
String s= new String(date);
System.out.println("每4个byte打印读入流:"+s);
}
} catch (IOException e) {
e.printStackTrace();
}finally {
try {
fis.close();
} catch (IOException e) {
e.printStackTrace();
}
} } @Test //实验2目的: 建立byte输出流,并建立异常保护机制
public void testFileOutputStream1(){
File f1=new File("D:\\SZS文件夹\\IO\\hello.txt");
FileOutputStream fos=null;
String s="this a testFileOutputStream1!"; //没毛病,s.getBytes("UTF-8")
try {
fos= new FileOutputStream(f1,true);
fos.write(s.getBytes("UTF-8")); //包装类可以轻松转换类型
} catch (FileNotFoundException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
} finally {
try {
fos.close();
}catch (IOException e){
e.printStackTrace();
}
}
} @Test //实验3目的: 从硬盘读取一个文件,并写到另一个文件 (相当于文件的复制!)
public void TestCopyFile() throws IOException {
// ①声明②加载地址③read/write④close流)
File f1=new File("D:\\SZS文件夹\\IO\\hello.txt");
File f2=new File("D:\\SZS文件夹\\IO\\hello_copy.txt");
FileInputStream fis=null;
FileOutputStream fos=null; try {
fis= new FileInputStream(f1);
fos= new FileOutputStream(f2);
//3.实现文件的复制
byte[] b=new byte[20];
int len=5;
while( (len = fis.read(b)) !=-1){ fos.write(b,0,len);
}
} catch (FileNotFoundException e) {
e.printStackTrace();
}finally {
fis.close();
fos.close();
}
}
}

控制台的输出结果:

每4个byte打印读入流:this
每4个byte打印读入流: a t
每4个byte打印读入流:estF
每4个byte打印读入流:ileO
每4个byte打印读入流:utpu
每4个byte打印读入流:tStr
每4个byte打印读入流:eam1
每4个byte打印读入流:!thi
每4个byte打印读入流:s a
每4个byte打印读入流:test
每4个byte打印读入流:File
每4个byte打印读入流:Outp
每4个byte打印读入流:utSt
每4个byte打印读入流:ream
每4个byte打印读入流:1!am

本地文件结果:

Java基础 FileInputStream/ FileOutputStream / 字节输入流 字节输出流实现文件的复制的更多相关文章

  1. Java基础-IO流对象之字节缓冲流(BufferedOutputStream与BufferedInputStream)

    Java基础-IO流对象之字节缓冲流(BufferedOutputStream与BufferedInputStream) 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 在我们学习字 ...

  2. java开发知识IO知识之输入输出流以及文件

    目录 java开发知识IO知识之输入输出流以及文件 一丶流概述 二丶输入流讲解 InputStream类. 1. 输入流以及类层次结构 2.文件操作.使用输入流读取 三丶输出流 OutputStrea ...

  3. Java之字节输入流和输出流

    package IODemo; import java.io.FileInputStream; import java.io.FileOutputStream; import java.io.IOEx ...

  4. 牛客网Java刷题知识点之输入流、输出流、字节流、字符流、字节流的抽象基类(InputStream、OutputStream)、字符流的抽象基类(Reader、Writer)、FileWriter、FileReader

    不多说,直接上干货! IO流用来处理设备之间的数据传输. java对数据的操作是通过流的方式. java用于操作流的对象都在IO包中. IO流按操作数据分为两种:字节流和字符流. IO流按流向分为:输 ...

  5. IO流 - 字节输入输出流,文件的复制

    IO流 I:input - 输入(读取),eg:把硬盘的内容读取到内存 O: output - 输出(写入) eg:把内存中的东西写入硬盘保存 流:数字(字符/字节) 一般1个字符=2Byte,1By ...

  6. Java的IO流以及输入流与输出流的异同

    一:流的基本概念:           Java中I/O操作主要是指使用Java进行输入,输出操作. Java所有的I/O机制都是基于数据流进行输入输出,这些数据流表示了字符或者字节数据的流动序列.J ...

  7. Java 基础(四)| IO 流之使用文件流的正确姿势

    为跳槽面试做准备,今天开始进入 Java 基础的复习.希望基础不好的同学看完这篇文章,能掌握泛型,而基础好的同学权当复习,希望看完这篇文章能够起一点你的青涩记忆. 一.什么是 IO 流? 想象一个场景 ...

  8. Java基础小知识1——分别使用字节流和字符流复制文件

    在日常使用计算机过程中经常会涉及文件的复制,今天我们就从Java代码的角度,看看在Java程序中文件复制的过程是如何实现的. 1.使用字节流缓冲区复制文件 示例代码如下: import java.io ...

  9. Java基础之序列化对象——将对象写入到文件中(SerializeObjects)

    控制台程序. 首先定义一个含有任意不同数据类型域的可序列化类: import java.io.Serializable; public class Junk implements Serializab ...

随机推荐

  1. CSS History

    Preface 如果只是要写程序,那的确是不需要这么麻烦,上来直接看Syntax,动手写上至少300行代码,做上3个应用程序,这门语言你也就差不多会用了,接下来不过就是模式,特殊的地方以及记住一些函数 ...

  2. 基于MSP430F2618的程控电压源

    基于MSP430F2618的程控电压源 声明:引用请注明出处http://blog.csdn.net/lg1259156776/ 系列博客说明:此系列博客属于作者在大三大四阶段所储备的关于电子电路设计 ...

  3. talend工具整理文件并出力文件到Excel当中

    问题描述: 每天都会生成一定的txt文件,txt文件当中含有复数个个人的信息,把每个个人信息都抽出来之后放到Excel文件的一览里面. 解决思路: 1.txt文件里面的信息有多件,每一件生成一个临时的 ...

  4. Java最全锁剖析:独享锁/共享锁+公平锁/非公平锁+乐观锁/悲观锁

    乐观锁 VS 悲观锁 乐观锁与悲观锁是一种广义上的概念,体现了看待线程同步的不同角度,在Java和数据库中都有此概念对应的实际应用. 1.乐观锁 顾名思义,就是很乐观,每次去拿数据的时候都认为别人不会 ...

  5. BS

  6. 【转帖】Linux 内核系统架构

    Linux 内核系统架构   描述Linux内核的文章已经有上亿字了 但是对于初学者,还是应该多学习多看,毕竟上亿字不能一下子就明白的. 即使看了所有的Linux 内核文章,估计也还不是很明白,这时候 ...

  7. MySQL部分2

  8. Bloom过滤器

    提出一个问题 在我们细述Bloom过滤器之前,我们先抛出一个问题:给你一个巨大的数据集(百万级.亿级......),怎么判断一个元素是否在此数据集中?或者怎么判断一个元素不在此数据集中? 思考这个问题 ...

  9. (二十一)SpringBoot之集成mybatis:使用mybatis xml

    一.引入maven依赖 <dependencies> <dependency> <groupId>org.springframework.boot</grou ...

  10. (四)输入参数与输出类型为复杂类型的web服务

    一. 服务端发布服务 1.1 定义复杂类型:UserBean.java package service; public class UserBean { private String userId; ...