- 浏览: 175618 次
- 性别:
- 来自: 北京
文章分类
- 全部博客 (134)
- java笔记 (25)
- Android开发 (3)
- Mybatis笔记 (1)
- oracle (9)
- javaScript (23)
- struts2 (2)
- jquery (6)
- java多线程 (6)
- 全文检索lucene (1)
- solr4.4 (5)
- solr4.9 (1)
- css 要点 (2)
- fmt格式化 (1)
- 百度地图 (1)
- 显示层jsp (2)
- ant (3)
- 脑袋放水 (2)
- 播放器 (1)
- log日志 (1)
- Spring (1)
- 设计模式 (2)
- httpservlet (1)
- seo (1)
- eclipse使用技巧 (1)
- 正则表达式 (2)
- 我的异常解决方案 (2)
- 集群服务器 (2)
- java网络编程 (3)
- Eclipse快捷键 (1)
- 图片和Base64互转 (1)
- maven (0)
- jsoup 网络爬虫 (1)
- 安全防范 (1)
- 非关系型数据库 (1)
- 在线工具 (1)
- HTML5学习 (1)
- Apache-Mina (1)
最新评论
-
wenjiao8204322:
不好意思说错了,是变量替换后,如果是英文和数字,是不换行的,如 ...
html 转换成pdf -
wenjiao8204322:
楼主你好,有问题、一直难以解决,我们项目上线后,就遗留在这就是 ...
html 转换成pdf -
jacking124:
scoreName 这个属性是做什么的!
jquery.raty-评级插件 -
高军威:
yixiandave 写道高军威 写道alvin198761 ...
Java中的五种实现方法【单例模式】 -
yixiandave:
高军威 写道alvin198761 写道53./** 54. ...
Java中的五种实现方法【单例模式】
一、InputStream/OutputStream 和 Reader/Writer
辨析:
InputStream/OutputStream:1)抽象类;2)面向字节 形式的I/O操作 (8位字节流)。
Reader/Writer:1)抽象类;2)面向字符的I/O操作(16位的Unicode字符)。
InputStreamReader:可以将InputStream转换为 Reader;
OutputStreamWriter:可以将OutputStream转换为Writer;
注:图中细箭头标识实现接口,粗箭头标识继承父类。
示例代码:
文件流与字节数组的互转:
辨析:
InputStream/OutputStream:1)抽象类;2)面向字节 形式的I/O操作 (8位字节流)。
Reader/Writer:1)抽象类;2)面向字符的I/O操作(16位的Unicode字符)。
InputStreamReader:可以将InputStream转换为 Reader;
OutputStreamWriter:可以将OutputStream转换为Writer;
注:图中细箭头标识实现接口,粗箭头标识继承父类。
示例代码:
package javaio01; import java.io.BufferedReader; import java.io.BufferedWriter; import java.io.File; import java.io.FileInputStream; import java.io.FileNotFoundException; import java.io.FileOutputStream; import java.io.FileReader; import java.io.FileWriter; import java.io.IOException; import java.io.InputStream; import java.io.InputStreamReader; import java.io.PrintWriter; /** * 使用 字符流和字节流两种方式,读取文本显示出来,并保存到指定的文件中; * */ public class ReaderTest { public static void main(String[] args) { //methodBytes("a.txt"); methodString("a.txt"); } /** * First:字节流 * */ public static void methodBytes(String position) { FileInputStream fileIn = null; try { fileIn = new FileInputStream(position); int n = 1024; byte inbuffer[] = new byte[n]; StringBuffer filecontent = new StringBuffer(); while(fileIn.read(inbuffer,0,n) != -1) { filecontent.append(new String(inbuffer)); } System.out.println("字节流读取文件内容:\n"+filecontent.toString()); fileIn.close();//关闭输入流 释放资源 //字节流读取转为字符流读取 BufferedReader br = new BufferedReader(new InputStreamReader(new FileInputStream(position))); String str = null; StringBuffer strbf = new StringBuffer(""); while((str = br.readLine()) != null) { strbf.append(str); } br.close(); System.out.println("\n字节流读取转为字符流读取:\n"+strbf.toString()); //写入文件b中 FileOutputStream os = new FileOutputStream("b.txt"); //写入输出流 os.write(filecontent.toString().getBytes()); //关闭输出流 os.close(); System.out.println("\n文件a的内容已经保存到b文件中去了!!!"); } catch (FileNotFoundException e) { System.out.println("file not exit!"); } catch (IOException e) { e.printStackTrace(); } } /** * Second:字符流 * */ public static void methodString(String position) { try { /*1th*/ //BufferedReader br = new BufferedReader(new FileReader(new File("a.tx"))); /*2th*/ //FileReader fr = new FileReader(position); //BufferedReader br = new BufferedReader(new FileReader("a.tx")); /*3th : InputStreamReader:可以将InputStream转换为 Reader;*/ //将字节流转换成字符流 BufferedReader br = new BufferedReader(new InputStreamReader(new FileInputStream(position))); String str = null; StringBuffer filecontent = new StringBuffer(); while((str = br.readLine()) != null) { filecontent.append(str); } System.out.println("\n字节流读取文件内容:\n"+filecontent.toString()); br.close();//关闭输入流 释放资源 /*********************/ //将字符流 保存到文本中 BufferedWriter brt = new BufferedWriter(new FileWriter("b.txt"),1024); brt.write(filecontent.toString()); brt.flush(); brt.close(); System.out.println("\n文件保存成功!!!\n"); /*********************/ PrintWriter pr = new PrintWriter(new FileOutputStream("aa.txt")); pr.println("wwwwwwwwwwwwwwwww"); pr.flush(); pr.close(); } catch (FileNotFoundException e) { System.out.println("file not exit!"); } catch (IOException e) { e.printStackTrace(); } } }
文件流与字节数组的互转:
/** * 获得指定文件的byte数组 */ private byte[] getBytes(String filePath){ byte[] buffer = null; try { File file = new File(filePath); FileInputStream fis = new FileInputStream(file); ByteArrayOutputStream bos = new ByteArrayOutputStream(1000); byte[] b = new byte[1000]; int n; while ((n = fis.read(b)) != -1) { bos.write(b, 0, n); } fis.close(); bos.close(); buffer = bos.toByteArray(); } catch (FileNotFoundException e) { e.printStackTrace(); } catch (IOException e) { e.printStackTrace(); } return buffer; } /** * 根据byte数组,生成文件 */ public static void getFile(byte[] bfile, String filePath,String fileName) { BufferedOutputStream bos = null; FileOutputStream fos = null; File file = null; try { File dir = new File(filePath); if(!dir.exists()&&dir.isDirectory()){//判断文件目录是否存在 dir.mkdirs(); } file = new File(filePath+"\\"+fileName); fos = new FileOutputStream(file); bos = new BufferedOutputStream(fos); bos.write(bfile); } catch (Exception e) { e.printStackTrace(); } finally { if (bos != null) { try { bos.close(); } catch (IOException e1) { e1.printStackTrace(); } } if (fos != null) { try { fos.close(); } catch (IOException e1) { e1.printStackTrace(); } } } }
发表评论
-
BigDecimal商业计算详解
2017-03-07 09:20 9251、浮点数精确计算 ... -
web.xml中load-on-startup标签的含义
2015-09-22 10:56 786原文:http://blog.csdn.net/leideng ... -
Java Junit测试例子
2015-01-21 13:46 591原文:http://blog.csdn.net/pleasur ... -
javac命令编译 各种编译
2014-12-12 11:11 442javac参数(-classpath, -sourcepath ... -
HashMap、HashTable、LinkedHashMap和TreeMap用法和区别
2014-11-14 09:22 1023原文转载:http://www.open-open.com/l ... -
上传进度条显示
2014-06-19 14:26 8601.重写 package com.upload.util ... -
java图片等比例缩放
2014-06-05 13:23 1012需要引入jar包 package com.gjw.ima ... -
将小写金额四舍五入保留两位小数,转换成大写金额
2014-05-30 10:26 903将小写金额四舍五入保留两位小数,转换成大写金额 网上收集了 ... -
response.setContentType 参数参照
2014-01-12 10:22 1084response.setContentType()的参数说明 ... -
java文件下载
2014-01-12 10:11 828文件下载有两种方法: 1.直接在网站上放个链接地址,右键另存为 ... -
html 转换成pdf
2013-12-27 18:07 9544解决需求: 1.字符串html代码转换成pdf文件 2.根据 ... -
java 程序代码小功能代码
2013-12-27 15:54 7451.输出格式 年月日 星期 SimpleDateForma ... -
详细解析Java中抽象类和接口的区别
2013-11-04 16:13 493在Java语言中, abst ... -
在线支付
2013-10-28 11:07 689http://blog.csdn.net/he20101020 ... -
java 给图片添加 水印图片
2013-10-22 17:35 848package michael.io.image; ... -
tika
2013-10-18 23:14 982测试代码: package com.tika.test; ... -
【文件下载】及解决文件名中文乱码问题
2013-10-16 10:32 1588关键代码: package com.action; ... -
日期 字符串截取 格式化 标签
2013-09-25 08:50 14791.java类文件 放到 src的包中 2.tld文件 放到w ... -
Java实现文件自动打包成zip并下载的代码
2013-09-24 15:34 1472package www.gjw.test; impo ... -
java email 发送带附件的邮件
2013-09-09 13:31 1205mixed、related 请看 http://3601935 ...
相关推荐
javaIO流整理.txt
自己整理了一下javaIO流的相关知识点 用xmind软件做了一下
JAVA_IO流整理思维导图.
Java IO流思维导图,主要摘录整理的是java.io.*包下的所有IO对象,其中对应备注里包含各个IO对象的构造方法
此文档是对JAVA 中的 IO 流的整理,其中有大多实用 而平时可以接触到的 IO 基础,对开发工作者有很大的帮助
该文档主要整理了Java IO流的相关信息,主要包括IO流的按照不同维度的分类、节点流、处理流、输入输出流的处理过程、抽象基类的使用等细节内容
此文档属于本人当初学习java基础之IO流,所整理的文档。里面有字节流与字符流的比较,也有总结使用不同方式读取文档的demo。希望对你的学习有帮助,谢谢!
io流常见的面试必考点和基础
Java IO体系结构看似庞大复杂,其实有规律可循,要弄清楚其结构,需要明白两点: 1. 其对称性质:InputStream 与 OutputStream, Reader 与 Writer,他们分别是一套字节输入-输出,字符输入-输出体系 2. 原始处理器(适配器)...
对于服务器的并发处理能力,我们需要的是:每一毫秒服务器都能及时处理这一毫秒内收到的数百个不同TCP连接上的报文,与此同时,可能服务器上还有数以十万计的最近几秒没有收发任何报文的相对不活跃连接。...
java各类IO流的整理demo,其内包含InputStream/OutputStream BufferedReader流 FileOutputStream/FileInputStream流 PrintWriter流 DataOut/DataIn流 Object流 FileChannel类;
Java io系统的设计初衷,就是为了实现“文件、控制台、网络设备”这些io设置的通信。例如,对于一个文件,我们可以打开文件,然后进行读取和写入。在java 1.0中,java提供的类都是以字节(byte)为单位,例如,...
本文整理了 Java 流(Stream)、 输入/输出IO 和 文件(File) 的相关内容,对文件内容的读写方法作了详细的介绍,对磁盘上的文件创建,删改,查询等方法也作了介绍。
Java-IO流基础例题 & 例题源码 & PPT教学文档(黑马程序员详细版)。
主要介绍了Java IO流体系继承结构图,非常不错,具有参考借鉴价值,需要的朋友可以参考下
DateFormat,Calendar、文件与流、Java变量类型间的相互转换、Java与Web、用连接池提高Servlet访问数据库的效率、Java扩展、应用服务器的集群策略及Java EE 5.0、Java IO 包中的Decorator模式等。
jdk中有各种流,整理出来分享给大家,需要xmind才能打开
Java学习资料 包含了java SE中的集合、String类和IO流中一些常用的API的知识点整理
Java基础类型,容器,并发,IO流,面向对象,Web编程等代码总结。 2、分类文档 JVM虚拟机 JVM特点,结构与执行周期 JVM类加载机制 JVM运行时区数据 JVM执行引擎和垃圾回收 基础语法 理解Java中对象基础Object类 ...