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有特殊 ...
随机推荐
- 27款后台管理页面设计 DIV+CSS+JS
-----------. 演示: http://www.websjy.com/club/websj ... _61040268/index.htm http://www.websjy.com/club ...
- SharePoint 2013 初始化Ribbon选中Tab
SharePoint使用中,经常打开页面会有默认展开的Ribbon选项,有时这又不是我们需要的,所以我们就需要默认选中的项目,下面简单介绍下如何实现. 方法一 1.Dispform.aspx页面默认R ...
- Autodesk 360 Mobile不能显示图片?
在6月21号的DevLab上,有一位朋友说Autodesk 360 Mobile在iPad上不能显示JPG图片预览.我当时没带iPad,不能测试.后天回家在Autodesk 360 Mobile 3. ...
- Phonegap 之 iOS银联在线支付(js调用ios端银联支付控件)
Phonegap项目,做支付的时候,当把网站打包到ios或android端成app后,在app上通过wap调用银联在线存在一个问题: 就是当从银联支付成功后,再从服务器返回到app客户端就很难实现. ...
- [其他]Ubuntu安装genymotion后unable to load VirtualBox engine
问题: Ubuntu安装genymotion后unable to load VirtualBox engine 解决办法: 如果没有安装VirtualBox,要先安装VirtualBox. 安装Vir ...
- 【代码笔记】iOS-带索引的tableView
一,效果图. 二,工程图. 三,代码. RootViewController.h #import <UIKit/UIKit.h> @interface RootViewController ...
- 【Android】监听Notification被清除
前言 一般非常驻的Notification是可以被用户清除的,如果能监听被清除的事件就可以做一些事情,比如推送重新计数的问题. 声明 欢迎转载,但请保留文章原始出处:) 博客园:http://www ...
- android 进程间通信数据(一)------parcel的起源
关于parcel,我们先来讲讲它的“父辈” Serialize. Serialize 是java提供的一套序列化机制.但是为什么要序列化,怎么序列化,序列化是怎么做到的,我们将在本文探讨下. 一:ja ...
- Linux使用汇总贴
1. 服务开机启动 比如: update-rc.d ssh enable 2. 修改hostname [基于ubutun] hostname newname vi /etc/hostnamevi /e ...
- Serena Dimensions 介绍
Serena Dimensions是配置管理工具,基于进程的软件更改和配置管理解决方案. 官方网址:http://www.serena.com/index.php/en/products/applic ...