File类用于访问文件或目录的属性

流:指一连串流动的字符,是以先进先出的方式发送信息的通道。程序和数据源之间是通过流联系起来的。

第一套:字节流读取写入方案

FileInputStream :字节流方式读取文本文件

        FileInputStream fis=new FileInputStream("E:\\读取文件.txt");
byte[]bytes=new byte[1024];
int data;
while((data=fis.read(bytes))!=-1)
{
String str=new String(bytes,0,data);
System.out.println(str);
}
fis.close();
}

FileOutputStream:字节流写入硬盘

    FileOutputStream fos=new FileOutputStream("E:\\1.txt");
String word="高考是人生的分水岭";
byte[] bytes = word.getBytes();
fos.write(bytes);
fos.close();
System.out.println("写入成功!");
}
}

第二套:字符流读取写入方案

FileReader:字符流读取文本

    FileReader fr=new FileReader("E:\\读取文件.txt");
char[]chars=new char[1024];
int data;
while((data=fr.read(chars))!=-1)
{
String str=new String(chars);
System.out.println(str);
}
}

FileWriter:字符流写入文本

FileWriter fw=new FileWriter("E:\\2.txt");

        fw.write("新的6月");

        System.out.println("写入成功!");

        fw.close();
}

第三套:<BufferedReader、BufferedWriter>一般和FileReader和FileWriter结合使用

BufferedReader:自定义缓存大小,读取文本 8192个char

    FileReader fr=new FileReader("E:\\读取文件.txt");
BufferedReader br=new BufferedReader(fr);
String line;
while((line=br.readLine())!=null)
{
System.out.println(line);
}
br.close();
fr.close();
}

BufferedWriter:写入文本

    FileWriter fw=new FileWriter("E:\\5.txt");
BufferedWriter bw=new BufferedWriter(fw);
bw.write("OK!!"); bw.close();
fw.close(); System.out.println("写入成功!!");
}

第四套:可以读取二进制(img图片等 )

DataInputStream:将本地的img加载到内存中

FileInputStream fis=new FileInputStream("E:\\5.txt");
FileOutputStream fos=new FileOutputStream("D:\\55.txt"); DataInputStream dis=new DataInputStream(fis);
DataOutputStream dos=null; byte[]bytes=new byte[1024]; int data; while((data=dis.read(bytes))!=-1)
{
dos=new DataOutputStream(fos);
dos.write(bytes);
} dos.close();
dis.close();
fos.close();
fis.close(); System.out.println("copy succes!!!");
}

DataOutputStream:将内存中的二进制数据写入到硬盘上的某个文件中

    DataOutputStream out=null;
DataInputStream dis=null;
try {
//创建输入流对象
FileInputStream fis=new FileInputStream("c:\\范宁.jpg");
dis=new DataInputStream(fis);
//创建输出流对象
FileOutputStream outFile=new FileOutputStream("c:\\范宁小美女33.jpg");
out=new DataOutputStream(outFile);
int temp=dis.read();
while (temp!=-1) {
out.write(temp);
temp=dis.read();
}
System.out.println("复制成功");
fis.close();
outFile.close();
} catch (Exception e) {
System.out.println("文件不存在");
}finally{
try {
if (dis!=null) {
dis.close();
}
if (out!=null) {
out.close();
}
} catch (Exception e2) {
e2.printStackTrace();
}
}

注:在java中,byte数组和String字符串如何转换?

1、string 转 byte[]

String str = "Hello";
byte[] srtbyte = str.getBytes();

2、byte[] 转 string

byte[] srtbyte;
String str = new String(srtbyte);
System.out.println(str);

四种读写方案IO流 (JAVA)的更多相关文章

  1. Java四种引用--《深入理解Java虚拟机》学习笔记及个人理解(四)

    Java四种引用--<深入理解Java虚拟机>学习笔记及个人理解(四) 书上P65. StrongReference(强引用) 类似Object obj = new Object() 这类 ...

  2. java 四种方式实现字符流文件的拷贝对比

    将D:\\应用软件\\vm.exe  拷贝到C:\\vm.exe   四种方法耗费时间对比  4>2>3>1 package Copy; import java.io.Buffere ...

  3. Java成长第四集--文本处理IO流

    Java IO流在实际业务中使用的频率还是蛮高的,一些业务场景比如,文件的上传和导出,文件的读取等基本都是通过操作IO流来实现的,所以IO流是我们现在学习过程中必须要掌握的技能之一,熟练的使用IO流, ...

  4. Java中的四套读写方案

    一.字节流读写方案 FileInputStream:字节流方式读取文本文件 FileoutputStream:字节流写入硬盘 二.字符流读写方案 FileReader:字符流读取文本 FileWrit ...

  5. java-mybaits-012-mybatis-Interceptor-拦截器读写分离四种实现方案

    一.概述 基本项目搭建 技术框架:spring web mvc .日志[slf4j.log4j2].mybatis.druid.jetty插件启动.mybatis-generator逆向配置生产dao ...

  6. 数据读写API——IO流

    理清一些概念 1.Java 中的IO是干啥的? IO指的是Input和Output,主要目的是实现数据在存储介质之间的传输.[流:数据流,类比与水流的流动] 2.IO分类 按照操作单元来划分,可以分为 ...

  7. 总结:视频播放的四种实现方案(Native)

    一.来自 AVFoundation的 AVPlayer对象 特点: 1. AVPlayer     > 优点:          可以自定义UI, 进行控制     > 缺点:      ...

  8. PHP四种序列化方案

    原文地址:https://t.ti-node.com/thread/... 数据的序列化是一个非常有用的功能,然而目测很多人跟我一样,在刚接触这玩意的时候压根就不理解这货色到底是干啥用的,反正老师说了 ...

  9. 基于redis实现的四种常见的限流策略

    引言 在web开发中功能是基石,除了功能以外运维和防护就是重头菜了.因为在网站运行期间可能会因为突然的访问量导致业务异常.也有可能遭受别人恶意攻击 所以我们的接口需要对流量进行限制.俗称的QPS也是对 ...

随机推荐

  1. .NET中的六个重要概念:栈、堆、值类型、引用类型、装箱和拆箱

    为何要翻译 一来是为了感受国外优秀技术社区知名博主的高质量文章,二来是为了复习对.NET技术的基础拾遗达到温故知新的效果,最后也是为了锻炼一下自己的英文读写能力.因为是首次翻译英文文章(哎,原谅我这个 ...

  2. 用Feature的方式删除SharePoint2010的Page中重复的WebPart

    用Feature的方式删除SharePoint2010的Page中重复的WebPart. 代码如下所示: public class SupportCenterDuplicatedWebpartRemo ...

  3. Codeforces Testing Round #12 C. Subsequences 树状数组

    C. Subsequences     For the given sequence with n different elements find the number of increasing s ...

  4. POJ 1984 Navigation Nightmare 带全并查集

    Navigation Nightmare   Description Farmer John's pastoral neighborhood has N farms (2 <= N <= ...

  5. Lingo语法

    基本语法 ! 注释,末尾需要分号 ~ 分隔符 集成员无论用何种字符字符标记,它的索引都是从1开始连续计数 在数据声明中输入两个相连的逗号表示该位置对应的集成员的属性值未知. init: endinit ...

  6. WEB前端知识体系脑图

    说在开始的话: 我上大学那会,虽说主要是学Java语言,但是web前端也稍微学了一些,那时候对前端也没多在意,因为涉入的不深,可以搞一个差不多可以看的界面就可以了,其他也没过多在意. 因为稍微了解一点 ...

  7. loadrunner写入数据到文件

    首先在F盘创建: F:\\LR\\test.txt文件 #define USERCOUNT 100    //定义参数数量 Action() {     char *namecommon=" ...

  8. MVC3实现多个按钮提交

    有时我们需要在同一个Form表单中进行多个按钮的提交,来完成不同的功能.因为MVC中一个表单默认只能提交到一个Action处理,相对比较麻烦. 1.使用客户端脚本 我们可以view中加上如下代码: & ...

  9. 关于css的全面学习笔记

    1.text-align 属性规定元素中的文本的水平对齐方式.该属性通过指定行框与哪个点对齐,从而设置块级元素内文本的水平对齐方式.通过允许用户代理调整行内容中字母和字之间的间隔,可以支持值 just ...

  10. hdu1106 排序水题

    Problem Description 输入一行数字,如果我们把这行数字中的‘5’都看成空格,那么就得到一行用空格分割的若干非负整数(可能有些整数以‘0’开头,这些头部的‘0’应该被忽略掉,除非这个整 ...