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有特殊 ...
随机推荐
- GP服务将矢量数据加入到栅格数据中的方法
1.如何将矢量数据加入栅格数据中 1. Conversion Tools -->To Raster-->Polygon to Raster 2. Spatial Analyst Tool ...
- Snort - manual 笔记(四)
1.7 Basic Output Snort可以做很多任务, 并且在任务完成后输出很多有用的统计信息. 一些不用说明就可以看懂, 其他的总结在这里, 不过只是一些基本的 1.7.1 Timing St ...
- iOS小型计算器
// // ViewController.m // 计算器 //屏幕的宽和高 #define SCREEN_W self.view.frame.size.width #define SCREEN_ ...
- Android 内容提供者的实现
接着上文<Android 内容提供者简介>进一步实现内容提供者. 每个Content Provider类都使用URI(Universal Resource Identifier,通用资源标 ...
- OC中的特有语法
一. 分类-Category 1. 基本用途 如何在不改变原来类模型的前提下,给类扩充一些方法?有2种方式 l 继承 l 分类(Category) 2. 格式 分类的声明 @interface 类名 ...
- 表单form的enctype="multipart/form-data"使用疑惑
在使用表单传送数据的时候,如果form 加了enctype="multipart/form-data" 这个属性,那么表单请求传到另一个jsp或servlet 里时是不能用requ ...
- Listener监听器与Filter过滤器
1.Listener [1]监听器简介 > Listener是JavaWeb的三大组件之一,Servlet.Filter.Listener > Li ...
- 开篇:IT软件人员学习的书籍 - IT软件人员书籍系列文章
读书是一件快乐的事情. 读书能够增长知识,了解社会,了解人类的思想,继而转换成智慧.无论是什么人,都需要读书,多读书,读好书,同时也要把书中的精髓记录下来,一个是当做读后感,一个是为以后如果忘记了回头 ...
- ARC下的所有权修饰符
ARC有效时,id类型必须加上所有权修饰符 下面为三种等效的声明,为了便于和二级指针的情况联系起来,采用第一种. NSError * __weak error = nil; NSError __wea ...
- 发现一个国内牛逼的maven仓库,速度真的太快了
前天网上下了一个项目,在公司还好,网络比较流畅,很快就把依赖下好了:回家的时候,想耍耍,结果下了一天也没把依赖下好,速度是几k每秒,甚至一k每秒,哎~心都碎了,网上一搜,结果发现了一个惊天的用nexu ...