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浏览器功能的InfoPath 表单中添加托管代码以动态地加载并显示图片
InfoPath 的浏览器表单不支持加载并显示图片,当然在模板中可以插入图片,但是如果想显示数据库的一幅图片,或是动态加载一张图片就无能为力了. 基实这个问题可以通过在浏览器表单中使用: " ...
- Autodesk招聘开发咨询顾问(北京或上海),需要内推的扔简历过来啊
Autodesk现招聘两位二次开发技术顾问,为正式编制.享受所有Autodesk优越的福利资源(额外商业保险,公积金全部由公司支付,年度奖金,季度礼物, 节日礼物, 15天年假,不定期的培训...). ...
- iOS从info.plist获取项目的名称及版本号
NSString *executableFile = [[[NSBundle mainBundle] infoDictionary] objectForKey:(NSString *)kCFBundl ...
- UIApplicationDelegate
App受到干扰时,UIApplication会通知它的delegate对象,让delegate处理系统事件. 项目中的AppDelegate已经遵守了UIApplicationDelegate协议 ...
- Android draw9patch 图片制作与使用
理解一下4句话: 上边 决定左右拉升不变形 左边 决定上下拉升不变形 右边 设置内容高度区域 下边 设置内容宽度区域 下面我拿张图片分别举例说明: 1.QQ多彩气泡 聊天对话框也用.9图片制作 继承过 ...
- App Transport Security has blocked a cleartext
错误描述: App Transport Security has blocked a cleartext HTTP (http://) resource load since it is insecu ...
- iOS 自定义的对象类型的解档和归档
自定义的对象的解档和归档 如果想对自己自定义的类进行解档和归档的话 必须遵循一个协议:NSCoding Student.h 文件 #import <Foundation/Foundation.h ...
- iOS开发之UISearchBar初探
iOS开发之UISearchBar初探 UISearchBar也是iOS开发常用控件之一,点进去看看里面的属性barStyle.text.placeholder等等.但是这些属性显然不足矣满足我们的开 ...
- java的反射机制
一.java的反射机制浅谈 最近研究java研究得很给力,主要以看博文为学习方式.以下是我对java的反射机制所产生的一些感悟,希望各位童鞋看到失误之处不吝指出.受到各位指教之处,如若让小生好好感动, ...
- Virtualbox虚拟机安装CentOS6.5图文详细教程
什么是Virtualbox? VirtualBox 是一款开源虚拟机软件(注:跟vmware差不多).VirtualBox 是由德国 Innotek 公司开发,由Sun Microsystems公司出 ...