Java中的四套读写方案
一.字节流读写方案
FileInputStream:字节流方式读取文本文件
FileoutputStream:字节流写入硬盘
二.字符流读写方案
FileReader:字符流读取文本
FileWriter:字符流写入文本
三.
BufferedReader:自定义缓存大小,读取文本8192个char
BufferedWriter:写入文本
一般和FileReader和FileWriter连用
四.可以读取二进制(img图片等)
DataInputStream:将本地的img加载到内存中
DataOutputStream::将内存中的二进制数据写入到硬盘上的某个文件中。
1.使用字节流读取文本文件
//字节输入流练习:从文本文件读取各种数据(字母,字符串都支持)
//声明流对象
try {
FileInputStream fis=new FileInputStream("c:\\ming.txt");
int data;
System.out.println("可读取的字节数:"+fis.available());
System.out.println("文件内容为:");
//循环读取数据
byte[] buffer=new byte[1024];
StringBuilder sb=new StringBuilder();
while ((data=fis.read(buffer))!=-1) {
//byte[]转为字符串
String str=new String(buffer,0,data,"gb2312");
sb.append(str);
}
System.out.println(sb.toString());
} catch (Exception e) {
}
3.使用字节流写文本文件
// 通过字节流将内存中的数据写入到硬盘上
FileOutputStream fos=null;
try {
String str="呵呵";
byte[] words=str.getBytes("gb2312");
//创建流对象,一追加方式写入文件
fos=new FileOutputStream("c:\\ming.txt",true);
//写入文件
fos.write(words,0,words.length);
System.out.println("文件已更新");
} catch (Exception e) {
System.out.println("创建文件时出错!");
}finally{
try {
if (fos!=null) {
fos.close();
}
} catch (Exception e2) {
e2.printStackTrace();
}
}
4.使用字符流读取文本文件
//使用字符流读取文本文件
Reader fr=null;
try {
fr=new FileReader("c:\\ming.txt");
char[] ch=new char[1024];//中转站,缓冲区
StringBuffer sbf=new StringBuffer();
int length=fr.read(ch);//将字符读入数组
//循环读取并追加字符
while (length!=-1) {
sbf.append(ch,0,length);
length=fr.read(ch);
}
System.out.print(sbf);
} catch (Exception e) {
e.printStackTrace();
}finally{
try {
if (fr!=null) {
fr.close();
}
} catch (Exception e2) {
// TODO: handle exception
}
}
5.使用字符流写文本文件
//使用字符流写文本文件
FileWriter fw=null;
try {
fw=new FileWriter("c:\\ming.txt",true);
//写入信息
String words="叶丽仪-上海滩";
fw.write(words);
fw.flush();
System.out.println("写入成功");
} catch (Exception e) {
System.out.println("文件不存在");
}finally{
try {
if (fw!=null) {
fw.close();
}
} catch (Exception e2) {
e2.printStackTrace();
}
}
// 字符输入流BufferedReader读取文件
FileReader fr=null;
BufferedReader br=null;
try {
//创建一个FileReader对象
fr=new FileReader("c:\\ming.txt");
//创建一个BufferedReader对象
br=new BufferedReader(fr);
//读取一行数据
String line=br.readLine();
while (line!=null) {
System.out.println(line);
line=br.readLine();
}
} catch (Exception e) {
e.printStackTrace();
}finally{
try {
if (br!=null) {
br.close();
}if (fr!=null) {
fr.close();
}
} catch (Exception e2) {
e2.printStackTrace();
}
}
使用MyBufferedWriter来写入文本文件
FileWriter fw=null;
BufferedWriter bw=null;
try {
fw=new FileWriter("c:\\ming.txt",true);
bw=new BufferedWriter(fw);
//写入信息
bw.write("故乡的原风景");
bw.newLine();
bw.write("城里的月光-许美静");
bw.flush();
fw.close();
//读取文件内容
FileReader fr=new FileReader("c:\\ming.txt");
BufferedReader br=new BufferedReader(fr);
String line=br.readLine();
while (line!=null) {
System.out.println(line);
line=br.readLine();
}
} catch (Exception e) {
System.out.println("文件不存在");
e.printStackTrace();
}finally{
try {
if (bw!=null) {
bw.close();
}
if (fw!=null) {
fw.close();
}
} catch (Exception e2) {
// TODO: handle exception
}
}
使用字节流类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中的四套读写方案的更多相关文章
- JAVA基础学习之throws和throw的区别、Java中的四种权限、多线程的使用等(2)
1.throws和throw的区别 throws使用在函数外,是编译时的异常,throw使用在函数内,是运行时的异常 使用方法 public int method(int[] arr) throws ...
- JAVA中的四种引用以及ReferenceQueue和WeakHashMap的使用示例
简介: 本文主要介绍JAVA中的四种引用: StrongReference(强引用).SoftReferenc(软引用).WeakReferenc(弱引用).PhantomReference(虚引用) ...
- Java中的四种引用
引用定义 实际上,Java中存在四种引用,它们由强到弱依次是:强引用.软引用.弱引用.虚引用.下面我们简单介绍下这四种引用: 强引用(Strong Reference):通常我们通过new来创建一个新 ...
- JAVA中的四种JSON解析方式详解
JAVA中的四种JSON解析方式详解 我们在日常开发中少不了和JSON数据打交道,那么我们来看看JAVA中常用的JSON解析方式. 1.JSON官方 脱离框架使用 2.GSON 3.FastJSON ...
- 四种读写方案IO流 (JAVA)
File类用于访问文件或目录的属性 流:指一连串流动的字符,是以先进先出的方式发送信息的通道.程序和数据源之间是通过流联系起来的. 第一套:字节流读取写入方案 FileInputStream :字节流 ...
- Java中“附近的人”实现方案讨论及代码实现
前言 在我们平时使用的许多app中有附近的人这一功能,像微信.qq附近的人,哈罗.街兔附近的车辆.这些功能就在我们日常生活中出现. 像类似于附近的人这一类业务,在Java中是如何实现的呢? 本文就简单 ...
- Java中的四种引用类型比较
1.引用的概念 引用这个概念是与JAVA虚拟机的垃圾回收有关的,不同的引用类型对应不同的垃圾回收策略或时机. 垃圾收集可能是大家感到难于理解的较难的概念之一,因为它并不能总是毫无遗漏地解决Java运行 ...
- Java 中的四种引用及垃圾回收策略
Java 中有四种引用:强引用.软引用.弱引用.虚引用: 其主要区别在于垃圾回收时是否进行回收: 1.强引用 使用最普遍的引用.如果一个对象具有强引用,那就 类似于必不可少的生活用品,垃圾回收器绝不会 ...
- K:java中properties文件的读写
Properties类与.properties文件: Properties类继承自Hashtable类并且实现了Map接口,也是使用一种键值对的形式来保存属性集的类,不过Properties有特殊 ...
随机推荐
- 如何使用代码或脚本启用SharePoint的备用语言
SP的多语言,需要安装语言包,然后手工去sharepoint下启动备用语言,如下图: [网站操作]-[语言设置]: 方法一:采用powershell处理 在很多项目情况下,需要用代码进行备用语言启动. ...
- [Android]下拉刷新控件RefreshableView的实现
以下内容为原创,欢迎转载,转载请注明 来自天天博客:http://www.cnblogs.com/tiantianbyconan/p/4172483.html 需求:自定义一个ViewGroup,实现 ...
- xcode 7及以上版本网络请求不成功的原因
在Xcode 7以前的版本使用的是http协议,从Xcode 7开始,默认使用的是https协议,这优化了加密性能. 要想在Xcode 7及以上版本能够进行网络请求,我们需要在info.plist文件 ...
- c中的函数
一. 什么是函数 l 任何一个C语言程序都是由一个或者多个程序段(小程序)构成的,每个程序段都有自己的功能,我们一般称这些程序段为“函数”.所以,你可以说C语言程序是由函数构成的. l 比如你用C语言 ...
- iOS开发之UISearchBar初探
iOS开发之UISearchBar初探 UISearchBar也是iOS开发常用控件之一,点进去看看里面的属性barStyle.text.placeholder等等.但是这些属性显然不足矣满足我们的开 ...
- 你知道C#中的Lambda表达式的演化过程吗
你知道C#中的Lambda表达式的演化过程吗? 阅读目录 委托的使用 匿名方法 Func和Action Lambda的诞生 那得从很久很久以前说起了,记得那个时候... 懵懂的记得从前有个叫委托的东西 ...
- js自执行函数的几种不同写法的比较
经常需要一个函数自执行,可惜这一种写法是错的: function(){alert(1);}(); 原因是前半段“function(){alert(1);}”被当成了函数声明,而不是一个函数表达式,从 ...
- select接收后台返回值的解决方案
在做页面表单或者条件筛选的时候,如何把select标签的值,在刷新页面后,保持选择的值.下面,将给出两种解决方案: 前提: 前台select标签 name为type : 后台接收type的值,业务完成 ...
- iOS开发进阶
<iOS开发进阶>基本信息作者: 唐巧 出版社:电子工业出版社ISBN:9787121247453上架时间:2014-12-26出版日期:2015 年1月开本:16开页码:268版次:1- ...
- Second glance in Go
Github上的"the way to Go"翻譯有時候真讓人搞不懂,我經常會暈,比如 如果需要申明一个在外部定义的函数,你只需要给出函数名与函数签名,不需要给出函数体: func ...