import java.io.File;

import java.io.FileInputStream;

import java.io.FileNotFoundException;

import java.io.FileOutputStream;

import org.junit.Test;

/**

*1.流的分类:

* 按照流向的不同分为:输入流 输出流

*按照处理数据单位的不通分为:字节流 字符流(处理的文本文件)

* 按照角色的不通分为 节点流(直接作用于文件的)处理流

*

*1.IO的体系:

* 抽象基类         节点流(文件流)         缓冲流

* InputStream       FileInputStream         BufferedInputStream

* OutputStream      FileOutputStream        BufferedOutputStream

* Reader         FileReader            BufferedReader

* Writer          FileWriter             BufferedWriter

*/

public class TestFileInputOutStream {

//实现复制的方法,封好的方法

public static void copy(String str,String desc) throws Exception{

File f = new File(str);

FileInputStream fis = new FileInputStream(f);

File out = new File(desc);

FileOutputStream fos = new FileOutputStream(out);

byte[] b= new byte[1024];

int len;

while((len = fis.read(b)) != -1){

fos.write(b, 0, len);

}

}

//实现图片的复制

@Test

public void testImgCopy() throws Exception{

File f = new File("/Users/lixiuming/Desktop/商品详情图片/detail-1.jpg");

FileInputStream fis = new FileInputStream(f);

File out = new File("/Users/lixiuming/Desktop/project/day_15/detail-1.jpg");

FileOutputStream fos = new FileOutputStream(out);

byte[] b= new byte[1024];

int len;

while((len = fis.read(b)) != -1){

fos.write(b, 0, len);

}

}

//从硬盘读取一个文件,并写入另外一个位置,相当于复制

@Test

public void testInputOutputStream() throws Exception{

File in = new File("hello.txt");

FileInputStream fis = new FileInputStream(in);

File out = new File("hello2.txt");

FileOutputStream fos = new FileOutputStream(out);

byte[] b = new byte[1024];

int len;

while((len = fis.read(b)) != -1){

fos.write(b, 0, len);

}

}

@Test

public void testFileOutputStream() throws Exception{

//创建一个File对象,表明要写入的文件位置

//输出的物理文件可以不存在,若不存在,在执行过程中会自动创建,若存在,则将原来的东西覆盖

File file = new File("hello2.txt");

//创建一个文件输出流对象,将File对象作为形参传递给FileOutputStream构造器中

FileOutputStream fos = new FileOutputStream(file);

//写入操作

fos.write(new String("lixiuming lixiuming lixiuming ").getBytes());

//关闭输出流

fos.close();

}

//从硬盘存在的一个文件中,读取其内容到程序中,使用FileInputStream

//要读取的文件一定要存在,否则空指针异常

@Test

public void testFileInputStream1() throws Exception{

//创建一个File类的对象

File file1 = new File("hello.txt");

//创建一个FileInputStream类的对象

FileInputStream fis = new FileInputStream(file1);

//调用FileInputStream方法,实现file1文件的读取

/**

*read()读取文件的一个字节 ,有循环的话,依次指向下一个数据,

*/

// int b  = fis.read();

// while(b != -1){

// System.out.print((char)b);

// b  = fis.read();

// }

int len;//每次读入到byte中的字节长度

byte[] bb = new byte[1024];//读取到的数据,返回个数(没有数据了就返回-1)

while(( len = fis.read(bb)) != -1){

// for(int i=0;i<len;i++){

// System.out.print((char)bb[i]);

// }

String str = new String(bb, 0, len);

System.out.println(str);

}

//关闭相应的流

fis.close();

}

}

节点流——FileInputStream&FileOutputStream的更多相关文章

  1. 节点流(文件流) FileInputStream & FileOutputStream & FileReader & FileWriter

    节点流(文件流) FileInputStream(字节流)处理视频类的                   FileOutputStream(字节流) FileReader(字符流)处理文本文件    ...

  2. Java API —— IO流( FileInputStream & FileOutputStream & BufferedInputStream & BufferedOutputStream )

    1.IO流概述 · IO流用来处理设备之间的数据传输        · 上传文件和下载文件        · Java对数据的操作是通过流的方式 · Java用于操作流的对象都在IO包中   2.IO ...

  3. 使用文件流与使用缓冲流完成文件的复制操作性能对比,文件流 FileInputStream FileOutputStream 缓冲流: BufferedInputStream BufferedOutputStream

    package seday06; import java.io.FileInputStream;import java.io.FileOutputStream;import java.io.IOExc ...

  4. IO学习二(节点流)

    1.流的分类 按照数据流向的不同:输入流和输出流 按照处理数据的单位不同:字节流((非文本文件)视频.音频.图像).字符流(文本文件) 按照角色的不同:节点流和处理流 2.IO体系 抽象基类 节点流 ...

  5. Java基础知识强化之IO流笔记22:FileInputStream / FileOutputStream 复制文本文件案例1

    1. 使用字节流FileInputStream / FileOutputStream 复制文本文件案例: 分析: (1)数据源:从哪里来 a.txt   --   读取数据  --  FileInpu ...

  6. JAVA里面的IO流(一)分类2(节点流和处理流及构造方法概要)

    IO流根据处理对象的不同分为节点流和处理流. 直接对文件进行处理的流为节点流: 对流进行包装从而实现对文件的优化处理的流为处理流. 节点流类型: 可以看出,节点流主要分这几大类: 文件流 文件流构造方 ...

  7. Java IO 节点流 FileInput/OutputStream

    Java IO 节点流 FileInput/OutputStream @author ixenos 节点流之 文件流 文件读写是最常见的I/O操作,通过文件流来连接磁盘文件,读写文件内容 1.文件的读 ...

  8. Java IO 节点流 ByteArrayInput/OutputStream

    Java IO 节点流 ByteArrayInput/OutputStream @author ixenos ByteArrayInputStream 包含一个内部缓冲区(字节数组byte[]),该缓 ...

  9. Java基础—IO小结(一)概述与节点流

    一.File类的使用  由于file类是一个基础类,所以我们从file类开始了解.(SE有完善的中文文档,建议阅读) 构造器: 常用方法:——完整方法请参见API API API!!! File做的是 ...

随机推荐

  1. NOIP2018赛前停课集训记(10.24~11.08)

    前言 为了不久之后的\(NOIP2018\),我们的停课从今天(\(Oct\ 24th\))起正式开始了. 本来说要下周开始的,没想到竟提早了几天,真是一个惊喜.毕竟明天有语文考试.后天有科学考试,逃 ...

  2. 2018.6.20 Java考试试题总结(Java语言基础与面向对象编程)最新版

    Java考试试题总结 一.单选题(每题1分 * 50 = 50分) 1.java程序的执行过程中用到一套JDK工具,其中javac.exe指( B ) A.java语言解释器 B.java字节码编译器 ...

  3. Bootstrap 按钮(Button)插件加载状态

    通过按钮(Button)插件,您可以添加进一些交互.比如控制按钮的状态.或者为其它组件(工具栏)创建按钮组. 加载状态 如需向按钮添加加载状态,只需要简单地向 button 元素添加 data-loa ...

  4. ElasticSearch High Level REST API【3】Scroll 滚屏

    ES中提供了 FROM/SIZE 分页,但这种分页有性能瓶颈. Scroll会以间隔时间滚屏的方式返回全部的查询数据,可以作为数据量很大的情况下,分页的一个替代方案 完整的示例如下: public v ...

  5. linux 下备份mysql数据库

    今天老板让备份数据库没办法自己折腾吧,下面把折腾的结果总结总结. 数据库备份思路: 1.编写脚本 2.执行脚本  哈哈,是不是很简单,打开冰箱,放入大象,关上.下面我是具体操作. 一.编写脚本 1.设 ...

  6. flask-bootstrap

    pip install bootstarp 使用bower安装bootstrap的命令是: bash$ bower install bootstrap不过问题出在如何安装bower上. 官方网站上这样 ...

  7. 14.2-ELK 经典用法—企业自定义日志收集切割和mysql模块

    本文收录在Linux运维企业架构实战系列 一.收集切割公司自定义的日志 很多公司的日志并不是和服务默认的日志格式一致,因此,就需要我们来进行切割了. 1.需切割的日志示例 2018-02-24 11: ...

  8. 懒人的mysql管理脚本

    最近常用到的命令,太懒不想打太多 1,mysql启动,重启,停止脚本 echo '/usr/local/mysql5/support-files/mysql.server $1'>>/us ...

  9. PHP 批量操作 Excel

    自己封装了一个批量操作excel文件的方法,通过xls文件地址集合遍历,第三个参数传入一个匿名函数用于每个需求的不同进行的操作,实例中我想要得到列表中含有折字的行,封装成sql语句返回. xls文件超 ...

  10. JZOJ 1267. 路障

    1267. 路障(block.pas/c/cpp) (File IO): input:block.in output:block.out Time Limits: 1000 ms  Memory Li ...