- 浏览: 565195 次
- 性别:
- 来自: 南京
文章分类
- 全部博客 (350)
- Sybase (30)
- SQL SERVER2005 (14)
- 数据库 (27)
- SSH框架 (27)
- WebService (21)
- 下载-软件收藏 (15)
- 随笔-日常使用 (9)
- Flex 相关 (13)
- Linux (11)
- Web (64)
- XML相关 (9)
- Socket相关 (1)
- Elipse (3)
- 统计报表 (11)
- 线程相关 (3)
- Java相关 (37)
- JAVASCRIPT (19)
- JAVA反射 (3)
- JSP标签 (3)
- 随笔-其他 (2)
- 随笔-设计模式 (3)
- 随笔-架构师相关 (1)
- 下载-源码 (7)
- 下载-帮助文档 (1)
- 下载-插件 (6)
- 技术-.NET (2)
- 技术-Excel VBA (8)
- 应用-地图相关 (2)
- 应用-GSM短信猫 (5)
- 应用-单点登录 (3)
- Android相关 (3)
最新评论
-
sucheng2016:
发现jconn4.jar 里面有getBlob(String) ...
Sybase15驱动包的问题com.sybase.jdbc3.jdbc.SybDriver -
sucheng2016:
java.lang.UnsupportedOperationE ...
Sybase15驱动包的问题com.sybase.jdbc3.jdbc.SybDriver -
ok123zxx:
没下文了吗
通过 Tomcat Advanced I/O 获得高性能的 Ajax tocmat6+CometProcessor -
q1345111:
大家这个问题 尚未完成方法 com.sybase.jdbc3. ...
Sybase15驱动包的问题com.sybase.jdbc3.jdbc.SybDriver -
bdk82924:
heshujing217187 写道问题同1楼一样,求解!换j ...
Sybase15驱动包的问题com.sybase.jdbc3.jdbc.SybDriver
总结:
如果按字符和字节来分类,除方法1和2,其余都是按字符写入文件,字符写入一般比字节快;看java API可知,FileWriter的父类就是OutputStreamWriter,他俩都是实现Writer类,从这点上来说,方法4和6几乎没区别,时间有些微的差别,但内部机制是一样的,而且方法6较简单,定义变量稍,以前总用方法4,看来以后得改变下了。
测试写入类
/**
* 测试结果
*
* 1.file's long:16kb
*
fileWrite's time----------36
outputStreamTest's time----------167
bufferedOutputTest's time----------17
bufferedWriteTest's time----------14
bufferedWrite And FileWriterTest's time----------9
bufferedWrite And BufferedOutputStreamTest's time----------12
*
* 2.file's long:1600kb
fileWrite's time----------69
outputStreamTest's time----------1282
bufferedOutputTest's time----------68
bufferedWriteTest's time----------40
bufferedWrite And FileWriterTest's time----------52
bufferedWrite And BufferedOutputStreamTest's time----------37
*
* 3.file's long:16000kb
fileWrite's time----------555
outputStreamTest's time----------12448
bufferedOutputTest's time----------599
bufferedWriteTest's time----------346
bufferedWrite And FileWriterTest's time----------316
bufferedWrite And BufferedOutputStreamTest's time----------358
4.file's long:160000kb
fileWrite's time----------5203
outputStreamTest's time----------127182
bufferedOutputTest's time----------5972
bufferedWriteTest's time----------3445 最优
bufferedWrite And FileWriterTest's time----------5904
bufferedWrite And BufferedOutputStreamTest's time----------5353
5.file's long:1600000kb
fileWrite's time----------50416
outputStreamTest's time----------1303242
bufferedOutputTest's time----------60931
bufferedWriteTest's time----------46697
bufferedWrite And FileWriterTest's time----------48710
bufferedWrite And BufferedOutputStreamTest's time----------64354
*/
public static void main(String[] args) {
String str = "abcdefghiJKLMN!";
int count = 1000000;
TestOutputStream t = new TestOutputStream();
long start = System.currentTimeMillis();
t.fileWriteTest(count, str);
long end = System.currentTimeMillis();
System.out.println("fileWrite's time---------" + (start - end));
start = System.currentTimeMillis();
t.outputStreamTest(count, str);
end = System.currentTimeMillis();
System.out.println("outputStreamTest's time---------" + (start - end));
start = System.currentTimeMillis();
t.bufferedOutputTest(count, str);
end = System.currentTimeMillis();
System.out
.println("bufferedOutputTest's time---------" + (start - end));
start = System.currentTimeMillis();
t.bufferedWriteTest(count, str);
end = System.currentTimeMillis();
System.out.println("bufferedWriteTest's time---------" + (start - end));
start = System.currentTimeMillis();
t.bufferedWriteAndFileWriterTest(count, str);
end = System.currentTimeMillis();
System.out.println("bufferedWrite And FileWriterTest's time---------" + (start - end));
start = System.currentTimeMillis();
t.bufferedWriteAndBufferedOutputStreamTest(count, str);
end = System.currentTimeMillis();
System.out.println("bufferedWrite And BufferedOutputStreamTest's time---------" + (start - end));
}
/**
*1 按字节写入 FileOutputStream
*
* @param count 写入循环次数
* @param str 写入字符串
*/
public void outputStreamTest(int count, String str) {
File f = new File("f:test1.txt");
OutputStream os = null;
try {
os = new FileOutputStream(f);
for (int i = 0; i < count; i++) {
os.write(str.getBytes());
}
os.flush();
System.out.println("file's long:" + f.length());
} catch (FileNotFoundException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
} finally {
try {
os.close();
} catch (IOException e) {
e.printStackTrace();
}
}
}
/**
*2 按字节缓冲写入 BufferedOutputStream
*
* @param count 写入循环次数
* @param str 写入字符串
*/
public void bufferedOutputTest(int count, String str) {
File f = new File("f:test2.txt");
BufferedOutputStream bos = null;
try {
OutputStream os = new FileOutputStream(f);
bos = new BufferedOutputStream(os);
for (int i = 0; i < count; i++) {
bos.write(str.getBytes());
}
bos.flush();
} catch (FileNotFoundException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
} finally {
try {
bos.close();
} catch (IOException e) {
e.printStackTrace();
}
}
}
/**
*3 按字符写入 FileWriter
*
* @param count 写入循环次数
* @param str 写入字符串
*/
public void fileWriteTest(int count, String str) {
File f = new File("f:test.txt");
Writer writer = null;
try {
writer = new FileWriter(f);
for (int i = 0; i < count; i++) {
writer.write(str);
}
writer.flush();
} catch (IOException e) {
e.printStackTrace();
} finally {
try {
writer.close();
} catch (Exception e) {
e.printStackTrace();
}
}
}
/**
*4 按字符缓冲写入 BufferedWriter
*
* @param count 写入循环次数
* @param str 写入字符串
*/
public void bufferedWriteTest(int count, String str) {
File f = new File("f:test3.txt");
OutputStreamWriter writer = null;
BufferedWriter bw = null;
try {
OutputStream os = new FileOutputStream(f);
writer = new OutputStreamWriter(os);
bw = new BufferedWriter(writer);
for (int i = 0; i < count; i++) {
bw.write(str);
}
bw.flush();
if(f.exists()){
f.delete();
}
} catch (FileNotFoundException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
} finally {
try {
bw.close();
} catch (IOException e) {
e.printStackTrace();
}
}
}
/**
*5 按字符缓冲写入 BufferedWriter and BufferedOutputStream
*
* @param count 写入循环次数
* @param str 写入字符串
*/
public void bufferedWriteAndBufferedOutputStreamTest(int count, String str) {
File f = new File("f:test4.txt");
BufferedOutputStream bos=null;
OutputStreamWriter writer = null;
BufferedWriter bw = null;
try {
OutputStream os = new FileOutputStream(f);
bos=new BufferedOutputStream(os);
writer = new OutputStreamWriter(bos);
bw = new BufferedWriter(writer);
for (int i = 0; i < count; i++) {
bw.write(str);
}
bw.flush();
if(f.exists()){
f.delete();
System.out.println("delete---");
}
} catch (FileNotFoundException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
} finally {
try {
bw.close();
} catch (IOException e) {
e.printStackTrace();
}
}
}
/**
*6 按字符缓冲写入 BufferedWriter and FileWriter
*
* @param count 写入循环次数
* @param str 写入字符串
*/
public void bufferedWriteAndFileWriterTest(int count, String str) {
File f = new File("f:test5.txt");
FileWriter fw=null;
BufferedWriter bw = null;
try {
fw=new FileWriter(f);
bw = new BufferedWriter(fw);
for (int i = 0; i < count; i++) {
bw.write(str);
}
bw.flush();
} catch (FileNotFoundException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
} finally {
try {
bw.close();
if(f.exists()){
f.delete();
}
} catch (IOException e) {
e.printStackTrace();
}
}
}
发表评论
-
Jav解析soap的xml
2015-05-17 21:13 799解析xml import org.dom4j.Docume ... -
Json转换利器Gson
2013-12-13 08:59 524转: http://blog.csdn.net/lk_blog ... -
asm jar包冲突的问题和解决方法(转)
2013-11-03 01:48 1155asm jar包冲突的问题和解决方法 在用Spring+Hi ... -
Spring ehCache 示例
2013-04-28 15:46 780http://blog.chinaunix.net/uid-2 ... -
将json字符串转换为bean (json-lib)
2013-04-26 15:26 1014Json-lib可以将Java对象转成json格式的字符串,也 ... -
QPID学习
2013-03-09 14:13 4447最近在看QPID 首先看下QPID是什么,他是个消息队列,用 ... -
短网址的原理和实现
2013-01-22 15:36 15376微博上经常会看到类似 http://t.cn/Afafhe 这 ... -
JAVA实现栈(stack)与堆(heap)
2013-01-11 17:22 923Java实现 栈(stack)与堆(heap) 上次写过一 ... -
Tomcat7.0下实现的websocket 代码
2013-01-07 19:37 990测试环境: JDK1.6 Tomcat7.0.30 ... -
Apache自带压力测试工具AB的使用方法
2012-09-18 11:26 1311使用例子: 1、打开dos界面,开始-》运行-》输入“cmd ... -
MyEclipse6.01注册码,Java源码
2012-07-02 16:12 1102不用为注册码犯愁了.. 下面是在网上搜索到的一段代码 ,分享给 ... -
ant解决OutOfMemoryError 或者Error starting modern compiler
2012-05-11 16:36 1391起因:在执行ant脚本的时候 ,报的错误是 Error st ... -
Java中使用Json 用到的jar包
2012-02-22 08:25 1381操作json开源的Jar包很多 ,那么多的jar选择哪个好呢 ... -
JsonUtils 类,将任意数据格式转换为Json格式
2012-02-21 09:12 1815package json; ... -
Java生成二维码或一维条形码(待续 未完)
2012-02-13 08:22 1765Java生成二维码或一维条形码(待续) 前段时间用了“ ... -
Java操作SVN(待续)
2012-02-02 08:31 1024一般大家都会直接使用snv客户端或者在eclipse中svn插 ... -
使用BeanUtils类简化request和resultset转换
2012-02-01 15:41 1090转:http://xdwangiflytek.iteye.co ... -
HttpClient 网络抓取
2012-01-20 10:08 1132利用 HttpClient 进行抓取 ... -
用Java实现按字节长度截取中英文数字字符串的方法总结 .
2011-12-20 16:59 1664转:http://blog.csdn.net/yanwudin ... -
JAVA读写INI文件,亲测
2011-12-01 16:01 4067代码如下: import java.io.Buf ...
相关推荐
在Java编程语言中,读取文件是常见的任务之一,尤其对于处理文本文件,如TXT文件,以行为单位读取文件内容是一种效率较高且易于管理数据的方式。本篇将深入探讨如何使用Java进行逐行读取TXT文件,并提供相关示例代码...
它主要包括以下几种核心类: - `InputStream`/`OutputStream` - `Reader`/`Writer` 这些类提供了一系列用于读写文件、网络数据等的基础方法。在Java IO模型中,当一个线程发起一个IO操作请求时,该线程会一直阻塞...
标题中的"IO——test"显然指的是与输入/输出(Input/Output,简称IO)相关的测试。在计算机科学中,IO是程序与外部世界交互的重要方式,包括读取数据(输入)和写入数据(输出)。这可能是一个测试用例或者一个实验...
Java文件流 Java中的输入输出是以流(Stream)来方式来处理的,流是在计算机的输入、输出操作中流动的数据序列(从网上下载软件时能清晰地感受到)。在 Java 中,流是指一序列的数据元素,这些数据元素是从一个...
### Java学习IO流小结——字符流 #### 知识点概述 在Java中,处理文件和数据流是一项基本而重要的任务。IO流是Java语言中处理输入/输出的重要工具,它包括字节流和字符流两大类。本文将重点讨论字符流的相关概念...
4. Java的多线程机制:在文档内容中,提到了与线程相关的几个关键概念,如`Thread`、`Runnable`和`run()`方法。`Thread`是Java中表示线程的一个类,可以创建线程并执行线程。`Runnable`是一个接口,定义了一个`run()...
Java的`java.io`包提供了多种类来处理文件,如FileInputStream用于读取文件,BufferedInputStream可以提高读取效率。我们需要先打开文件,然后以字节流的形式读取内容,再将其写入Socket的输出流。 3. **TCP协议**...
描述中提到的几个主题——Java网络编程、多线程、IO(输入/输出)、注解和反射机制,都是Java开发者必须掌握的重要部分。 1. **Java网络编程**:Java提供了丰富的类库来支持网络编程,如Socket和ServerSocket类,...
Buffer 主要有以下几种操作: - **allocate()**:分配一个新的 Buffer。 - **put()**:将数据放入 Buffer。 - **flip()**:准备从 Buffer 读取数据。 - **get()**:从 Buffer 读取数据。 - **clear()** 或 **...
- **NIO (New IO)**:随着JDK 1.4的发布,Java引入了一种全新的IO处理方式——NIO,它提供了一系列新特性和改进,以提高IO效率。 NIO的关键特性包括但不限于: - **缓存(Buffer)支持**:为所有的原始类型提供缓存...
标题《Java串口通信代码》描述了文档所涉及的核心内容——Java编程语言在串口通信方面的应用。串口通信是一种计算机与外部设备通信的常见方式,尤其在工业自动化、数据采集、远程控制等领域有着广泛的应用。Java作为...
7. **文件存储与读取**:为了保存玩家的得分或者游戏进度,可以使用Java的`java.io`包进行文件操作,将数据写入文件并在游戏重启时读取。 8. **异常处理**:在编程过程中,异常处理是确保程序稳定运行的重要环节。...
Java的`java.io`包提供了文件读写功能,可以将分数、关卡进度等信息写入文件,下次游戏时再读取出来。 在项目“SuperMario”中,你可以找到这些知识点的具体实现。通过对源代码的阅读和学习,你将能够更深入地理解...
为此,从JDK 1.4开始,Java引入了一种新的IO操作模型——NIO(New IO),旨在提高程序处理大量并发连接的能力。NIO的主要特点在于它提供了一套基于缓冲区(buffer)且支持非阻塞(non-blocking)IO操作的API。 ####...
"文件"菜单中的"新建"操作可以创建一个新的文本文件,"打开"操作则使用FileStream或StreamReader读取已存在的文件内容,"保存"操作则使用FileStream或StreamWriter将编辑内容写入文件。注意,文件操作需要处理异常,...
在Java中进行文件操作主要包括文件的读取、写入、删除等。在提供的代码片段中,可以看到对文件读取的支持: ```java import java.io.BufferedReader; import java.io.FileReader; ``` 这意味着程序可能包含打开...
- **文件 I/O 流编程**:读取、写入文件及数据流处理。 - **网络编程**:实现网络通信功能,如 TCP/IP、UDP 协议的应用。 - **多线程编程**:利用 Java 多线程机制提高程序效率。 ### Java EE 基础 Java EE 技术栈...
在Java中处理文件输入输出时,为了按行读取或者写入文件,通常会选择使用特定的类来提高效率和便利性。题目提到的选项中,`BufferedReader` 和 `BufferedWriter` 是最适合这一目的的类。 **详细解释:** - **`...
这个名为"基于Java的实例源码-GIF动画制作工具 GiftedMotion.zip"的压缩包文件提供了一个使用Java编写的GIF动画制作工具——GiftedMotion的源代码。通过学习和理解这个工具的源码,开发者可以深入了解如何在Java环境...
在Java编程领域,异步处理是一种提升程序性能和效率的重要技术。它允许程序在等待某个耗时操作完成的同时,可以继续执行其他任务,从而避免了阻塞主线程,提升了系统的响应速度。本压缩包"基于Java的异步输出框架 ...