Java基础 FileInputStream/ FileOutputStream / 字节输入流 字节输出流实现文件的复制
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 / 字节输入流 字节输出流实现文件的复制的更多相关文章
- Java基础-IO流对象之字节缓冲流(BufferedOutputStream与BufferedInputStream)
Java基础-IO流对象之字节缓冲流(BufferedOutputStream与BufferedInputStream) 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 在我们学习字 ...
- java开发知识IO知识之输入输出流以及文件
目录 java开发知识IO知识之输入输出流以及文件 一丶流概述 二丶输入流讲解 InputStream类. 1. 输入流以及类层次结构 2.文件操作.使用输入流读取 三丶输出流 OutputStrea ...
- Java之字节输入流和输出流
package IODemo; import java.io.FileInputStream; import java.io.FileOutputStream; import java.io.IOEx ...
- 牛客网Java刷题知识点之输入流、输出流、字节流、字符流、字节流的抽象基类(InputStream、OutputStream)、字符流的抽象基类(Reader、Writer)、FileWriter、FileReader
不多说,直接上干货! IO流用来处理设备之间的数据传输. java对数据的操作是通过流的方式. java用于操作流的对象都在IO包中. IO流按操作数据分为两种:字节流和字符流. IO流按流向分为:输 ...
- IO流 - 字节输入输出流,文件的复制
IO流 I:input - 输入(读取),eg:把硬盘的内容读取到内存 O: output - 输出(写入) eg:把内存中的东西写入硬盘保存 流:数字(字符/字节) 一般1个字符=2Byte,1By ...
- Java的IO流以及输入流与输出流的异同
一:流的基本概念: Java中I/O操作主要是指使用Java进行输入,输出操作. Java所有的I/O机制都是基于数据流进行输入输出,这些数据流表示了字符或者字节数据的流动序列.J ...
- Java 基础(四)| IO 流之使用文件流的正确姿势
为跳槽面试做准备,今天开始进入 Java 基础的复习.希望基础不好的同学看完这篇文章,能掌握泛型,而基础好的同学权当复习,希望看完这篇文章能够起一点你的青涩记忆. 一.什么是 IO 流? 想象一个场景 ...
- Java基础小知识1——分别使用字节流和字符流复制文件
在日常使用计算机过程中经常会涉及文件的复制,今天我们就从Java代码的角度,看看在Java程序中文件复制的过程是如何实现的. 1.使用字节流缓冲区复制文件 示例代码如下: import java.io ...
- Java基础之序列化对象——将对象写入到文件中(SerializeObjects)
控制台程序. 首先定义一个含有任意不同数据类型域的可序列化类: import java.io.Serializable; public class Junk implements Serializab ...
随机推荐
- CSS History
Preface 如果只是要写程序,那的确是不需要这么麻烦,上来直接看Syntax,动手写上至少300行代码,做上3个应用程序,这门语言你也就差不多会用了,接下来不过就是模式,特殊的地方以及记住一些函数 ...
- 基于MSP430F2618的程控电压源
基于MSP430F2618的程控电压源 声明:引用请注明出处http://blog.csdn.net/lg1259156776/ 系列博客说明:此系列博客属于作者在大三大四阶段所储备的关于电子电路设计 ...
- talend工具整理文件并出力文件到Excel当中
问题描述: 每天都会生成一定的txt文件,txt文件当中含有复数个个人的信息,把每个个人信息都抽出来之后放到Excel文件的一览里面. 解决思路: 1.txt文件里面的信息有多件,每一件生成一个临时的 ...
- Java最全锁剖析:独享锁/共享锁+公平锁/非公平锁+乐观锁/悲观锁
乐观锁 VS 悲观锁 乐观锁与悲观锁是一种广义上的概念,体现了看待线程同步的不同角度,在Java和数据库中都有此概念对应的实际应用. 1.乐观锁 顾名思义,就是很乐观,每次去拿数据的时候都认为别人不会 ...
- BS
- 【转帖】Linux 内核系统架构
Linux 内核系统架构 描述Linux内核的文章已经有上亿字了 但是对于初学者,还是应该多学习多看,毕竟上亿字不能一下子就明白的. 即使看了所有的Linux 内核文章,估计也还不是很明白,这时候 ...
- MySQL部分2
- Bloom过滤器
提出一个问题 在我们细述Bloom过滤器之前,我们先抛出一个问题:给你一个巨大的数据集(百万级.亿级......),怎么判断一个元素是否在此数据集中?或者怎么判断一个元素不在此数据集中? 思考这个问题 ...
- (二十一)SpringBoot之集成mybatis:使用mybatis xml
一.引入maven依赖 <dependencies> <dependency> <groupId>org.springframework.boot</grou ...
- (四)输入参数与输出类型为复杂类型的web服务
一. 服务端发布服务 1.1 定义复杂类型:UserBean.java package service; public class UserBean { private String userId; ...