四种读写方案IO流 (JAVA)
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)的更多相关文章
- Java四种引用--《深入理解Java虚拟机》学习笔记及个人理解(四)
Java四种引用--<深入理解Java虚拟机>学习笔记及个人理解(四) 书上P65. StrongReference(强引用) 类似Object obj = new Object() 这类 ...
- java 四种方式实现字符流文件的拷贝对比
将D:\\应用软件\\vm.exe 拷贝到C:\\vm.exe 四种方法耗费时间对比 4>2>3>1 package Copy; import java.io.Buffere ...
- Java成长第四集--文本处理IO流
Java IO流在实际业务中使用的频率还是蛮高的,一些业务场景比如,文件的上传和导出,文件的读取等基本都是通过操作IO流来实现的,所以IO流是我们现在学习过程中必须要掌握的技能之一,熟练的使用IO流, ...
- Java中的四套读写方案
一.字节流读写方案 FileInputStream:字节流方式读取文本文件 FileoutputStream:字节流写入硬盘 二.字符流读写方案 FileReader:字符流读取文本 FileWrit ...
- java-mybaits-012-mybatis-Interceptor-拦截器读写分离四种实现方案
一.概述 基本项目搭建 技术框架:spring web mvc .日志[slf4j.log4j2].mybatis.druid.jetty插件启动.mybatis-generator逆向配置生产dao ...
- 数据读写API——IO流
理清一些概念 1.Java 中的IO是干啥的? IO指的是Input和Output,主要目的是实现数据在存储介质之间的传输.[流:数据流,类比与水流的流动] 2.IO分类 按照操作单元来划分,可以分为 ...
- 总结:视频播放的四种实现方案(Native)
一.来自 AVFoundation的 AVPlayer对象 特点: 1. AVPlayer > 优点: 可以自定义UI, 进行控制 > 缺点: ...
- PHP四种序列化方案
原文地址:https://t.ti-node.com/thread/... 数据的序列化是一个非常有用的功能,然而目测很多人跟我一样,在刚接触这玩意的时候压根就不理解这货色到底是干啥用的,反正老师说了 ...
- 基于redis实现的四种常见的限流策略
引言 在web开发中功能是基石,除了功能以外运维和防护就是重头菜了.因为在网站运行期间可能会因为突然的访问量导致业务异常.也有可能遭受别人恶意攻击 所以我们的接口需要对流量进行限制.俗称的QPS也是对 ...
随机推荐
- C语言中的static 详细分析
转自:http://blog.csdn.net/keyeagle/article/details/6708077/ google了近三页的关于C语言中static的内容,发现可用的信息很少,要么长篇大 ...
- GitHub上史上最全的Android开源项目分类汇总 (转)
GitHub上史上最全的Android开源项目分类汇总 标签: github android 开源 | 发表时间:2014-11-23 23:00 | 作者:u013149325 分享到: 出处:ht ...
- 玲珑杯1007-A 八进制大数加法(实现逻辑陷阱与题目套路)
题目连接:http://www.ifrog.cc/acm/problem/1056 DESCRIPTION Two octal number integers a, b are given, and ...
- ettercap局域网内DNS欺骗(隔壁的哥们轻一点 ...)
转自:http://www.cnblogs.com/hkleak/p/5043063.html 笔记一:ettercap是什么? 我们在对WEB安全检测的时候都会用到Cain和netfuke这两款工具 ...
- js小例子(多字溢出,省略号表示)
实现了div中字数较多,显示不下的时候,用省略号来表示,并且可以展开和收起: <html> <head> <meta http-equiv="Content-T ...
- [BZOJ2599][Race][IOI2011]点分治
这是为了真正去学一下点分治..然后看了迪克李的ppt 又是一道写(改)了很久的题..终于ac了 1354799 orzliyicheng 2599 Accepted 31936 kb 23584 ms ...
- struts2总结三:struts2配置文件struts.xml的简单总结
一.struts中的常量constant的配置. 在struts2中同一个常量的配置有三种方式,第一种在struts.xml中,第二种在struts.properties中配置,第三种在web.xml ...
- HTML5拖放事件(Drag-and-Drop,DnD)
拖放 拖放是一种常见的特性,即抓取对象以后拖到另一个位置.在 HTML5 中,拖放是标准的一部分,任何元素都能够拖放. 拖放是在“拖放源(drag source)”和“拖放目标(drop target ...
- ps让文字的颜色变成图片的颜色
第一种: 把某张图片图层置于文字图层之上,右击图片图层-->选择"创建剪贴蒙版"即可.第二种:把某张图片图层置于文字图层之上,并选择图片图层,按住Ctrl键,点击文字图层,载 ...
- 将公司的主要项目从eclipse迁移到android studio for mac环境(1)
上星期,我决定要解决这个问题.理由如下: 3个月之前,我已经投入一段时间要做好这个迁移工作,直到最后,我发现能够安装了,但是运行不了,这个过程也看不到bugly上传,在找不到原因的情况下,我放弃了. ...