- 浏览: 182109 次
- 性别:
- 来自: 北京
文章分类
- 全部博客 (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 9821、浮点数精确计算 ... -
web.xml中load-on-startup标签的含义
2015-09-22 10:56 844原文:http://blog.csdn.net/leideng ... -
Java Junit测试例子
2015-01-21 13:46 671原文:http://blog.csdn.net/pleasur ... -
javac命令编译 各种编译
2014-12-12 11:11 489javac参数(-classpath, -sourcepath ... -
HashMap、HashTable、LinkedHashMap和TreeMap用法和区别
2014-11-14 09:22 1075原文转载:http://www.open-open.com/l ... -
上传进度条显示
2014-06-19 14:26 9111.重写 package com.upload.util ... -
java图片等比例缩放
2014-06-05 13:23 1048需要引入jar包 package com.gjw.ima ... -
将小写金额四舍五入保留两位小数,转换成大写金额
2014-05-30 10:26 946将小写金额四舍五入保留两位小数,转换成大写金额 网上收集了 ... -
response.setContentType 参数参照
2014-01-12 10:22 1157response.setContentType()的参数说明 ... -
java文件下载
2014-01-12 10:11 875文件下载有两种方法: 1.直接在网站上放个链接地址,右键另存为 ... -
html 转换成pdf
2013-12-27 18:07 9629解决需求: 1.字符串html代码转换成pdf文件 2.根据 ... -
java 程序代码小功能代码
2013-12-27 15:54 7931.输出格式 年月日 星期 SimpleDateForma ... -
详细解析Java中抽象类和接口的区别
2013-11-04 16:13 539在Java语言中, abst ... -
在线支付
2013-10-28 11:07 751http://blog.csdn.net/he20101020 ... -
java 给图片添加 水印图片
2013-10-22 17:35 898package michael.io.image; ... -
tika
2013-10-18 23:14 1024测试代码: package com.tika.test; ... -
【文件下载】及解决文件名中文乱码问题
2013-10-16 10:32 1648关键代码: package com.action; ... -
日期 字符串截取 格式化 标签
2013-09-25 08:50 15421.java类文件 放到 src的包中 2.tld文件 放到w ... -
Java实现文件自动打包成zip并下载的代码
2013-09-24 15:34 1510package www.gjw.test; impo ... -
java email 发送带附件的邮件
2013-09-09 13:31 1258mixed、related 请看 http://3601935 ...
相关推荐
javaIO流整理.txt
自己整理了一下javaIO流的相关知识点 用xmind软件做了一下
JAVA_IO流整理思维导图.
Java中的IO流是Java平台核心特性之一,它用于在各种数据源之间传输数据,包括文件、设备、网络连接等。IO流分为输入流(Input Stream)和输出流(Output Stream),按照处理的数据类型又可以分为字节流和字符流。本...
Java IO流是Java平台中用于处理输入输出操作的重要部分,对于任何Java开发者,尤其是准备面试或希望在大型公司如阿里、腾讯工作的候选人来说,掌握IO流的知识是必不可少的。以下是对Java IO流的详细解析: **一、为...
Java IO流思维导图,主要摘录整理的是java.io.*包下的所有IO对象,其中对应备注里包含各个IO对象的构造方法
Java的IO流是处理输入和输出的核心组件。它们分为字节流和字符流,字节流处理原始的8位字节数据,而字符流处理Unicode字符。字节流又分为输入流(InputStream和Reader)和输出流(OutputStream和Writer)。输入流...
### Java IO流分析、IO整理与IO优化 #### 一、IO流概念解析 Java中的文件操作主要通过**流**的方式进行。所谓流,是指在Java内存中的一组有序数据序列,它允许开发者以一种线性的方式处理数据,无论是从源(如文件...
Java的IO流体系是Java平台的核心特性之一,用于处理数据的输入和输出。这个体系结构设计得相当丰富和灵活,可以适应多种不同的场景。我们主要从两个方面来理解这个体系:对称性质和处理器模式。 首先,IO流的对称...
Java IO流是Java编程语言中一个非常重要的概念,它提供了数据传输的能力,使得程序能够读取和写入数据到各种输入/输出设备,如硬盘、内存、网络等。本资源包含的是Java-IO流的基础例题、源码及PPT教学文档,适合初学...
Java IO 复用技术是针对服务器并发处理能力的关键所在,特别是在高并发环境下,服务器需要能够及时处理大量并发的TCP连接,同时保持高效利用CPU和其他资源。并发编程的目标是尽可能提高处理并发连接的数量,直到物理...
java各类IO流的整理demo,其内包含InputStream/OutputStream BufferedReader流 FileOutputStream/FileInputStream流 PrintWriter流 DataOut/DataIn流 Object流 FileChannel类;
Java IO流体系继承结构图 Java IO流体系继承结构图是 Java 语言中 Input/Output 操作的核心部分,它们都是从基类 InputStream 和 OutputStream 继承而来的。Java IO流体系继承结构图可以分为两大部分:Reader-...
Java IO流简介 Java IO系统的设计初衷,就是为了实现“文件、控制台、网络设备”这些IO设置的通信。IO流是Java中一个基本概念,理解IO流是Java开发中的一项重要技能。下面将对Java IO流进行详细的介绍。 什么是流 ...
这个"j0601IO_chicken_Java-IO_prettyjtt_"标题可能指的是一个关于Java IO的学习资源,其中"chicken"可能是一个比喻,表示初学者或者新手,"prettyjtt"可能是创建或整理这个学习资料的人的昵称。"javax小菜鸡io"描述...
在"Java常用代码整理"这个主题中,我们可以探讨多个Java编程中的关键知识点,包括基础语法、面向对象特性、异常处理、集合框架、IO流、多线程、网络编程以及实用工具类等。 1. **基础语法**:Java的基础语法包括...
通过实践,你可以更深入地理解Java集合、String和IO流的使用,提升你的编程技能。记得,理论与实践相结合是学习任何编程语言的关键,不断编写代码、调试错误,才能真正掌握这些知识。希望这份资料能成为你Java学习之...
在这个完整的Java IO整理版中,我们将深入探讨一些基本的IO概念和用法,主要包括文件操作、路径分隔符、文件删除、文件夹创建以及列出目录下的所有文件。 首先,创建新文件是Java IO中最基础的操作之一。在案例1中...