﻿<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:trackback="http://madskills.com/public/xml/rss/module/trackback/" xmlns:wfw="http://wellformedweb.org/CommentAPI/" xmlns:slash="http://purl.org/rss/1.0/modules/slash/"><channel><title>BlogJava-月光记忆-文章分类-java基本</title><link>http://www.blogjava.net/sunzhong/category/41209.html</link><description>清泉响露</description><language>zh-cn</language><lastBuildDate>Sun, 21 Mar 2010 23:19:31 GMT</lastBuildDate><pubDate>Sun, 21 Mar 2010 23:19:31 GMT</pubDate><ttl>60</ttl><item><title>对每个MIDLET调试的配置</title><link>http://www.blogjava.net/sunzhong/articles/316049.html</link><dc:creator>月光记忆</dc:creator><author>月光记忆</author><pubDate>Sat, 20 Mar 2010 19:09:00 GMT</pubDate><guid>http://www.blogjava.net/sunzhong/articles/316049.html</guid><wfw:comment>http://www.blogjava.net/sunzhong/comments/316049.html</wfw:comment><comments>http://www.blogjava.net/sunzhong/articles/316049.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/sunzhong/comments/commentRss/316049.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/sunzhong/services/trackbacks/316049.html</trackback:ping><description><![CDATA[&nbsp;<br />
&nbsp; 1 需要在debug Configurations 里面new一个新的Emulator&nbsp;<br />
&nbsp; 2 在第一个选项卡里面 做一定的操作 project里面选择调试Midlet所在的project ，在Executable选择要调试的Midlet。<br />
&nbsp; 3 在common选择卡里面对 display in favorite menu 的Debugg 打钩，一切ok了。<br />
&nbsp; 4 在调试之前 最后先编译一次。<br />
&nbsp; 5 调试完后最后 以最稳当的方式退出 ，比如选模拟器的exit。<br />
&nbsp; 6 如果遇到调试时 出错，一是按以上的方式 手工配置 二是重启Eclipse。<br />
&nbsp; 7 不稳定的情况有zayit exe-----应用程序错误 这个时候要重启Eclipse。<br />
&nbsp; 8 比较大胆的方法是直接在src目录下对某个Midlet右击debug最末分支的第一个来调试 ，这个可能引起zayit exe错误。
<img src ="http://www.blogjava.net/sunzhong/aggbug/316049.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/sunzhong/" target="_blank">月光记忆</a> 2010-03-21 03:09 <a href="http://www.blogjava.net/sunzhong/articles/316049.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>j2me调试的时候报的错误汇总（不断更新中）</title><link>http://www.blogjava.net/sunzhong/articles/316032.html</link><dc:creator>月光记忆</dc:creator><author>月光记忆</author><pubDate>Sat, 20 Mar 2010 10:30:00 GMT</pubDate><guid>http://www.blogjava.net/sunzhong/articles/316032.html</guid><wfw:comment>http://www.blogjava.net/sunzhong/comments/316032.html</wfw:comment><comments>http://www.blogjava.net/sunzhong/articles/316032.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/sunzhong/comments/commentRss/316032.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/sunzhong/services/trackbacks/316032.html</trackback:ping><description><![CDATA[** Error installing suite (32): The application is an newer（older） version of one that is already installed<br />
<br />
解决办法是 在运行目录下（控制台有描述，大概是这样的 Running with storage root C:\Users\Administrator\j2mewtk\2.5.2\appdb\DefaultColorPhone）<br />
把 非安装时产生的文件 通通删除 就可以了，如果有子目录的话要进入子目录删除。
<img src ="http://www.blogjava.net/sunzhong/aggbug/316032.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/sunzhong/" target="_blank">月光记忆</a> 2010-03-20 18:30 <a href="http://www.blogjava.net/sunzhong/articles/316032.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>汉字不同编码转换的问题 UCS2转码的心得</title><link>http://www.blogjava.net/sunzhong/articles/290980.html</link><dc:creator>月光记忆</dc:creator><author>月光记忆</author><pubDate>Thu, 13 Aug 2009 04:14:00 GMT</pubDate><guid>http://www.blogjava.net/sunzhong/articles/290980.html</guid><wfw:comment>http://www.blogjava.net/sunzhong/comments/290980.html</wfw:comment><comments>http://www.blogjava.net/sunzhong/articles/290980.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/sunzhong/comments/commentRss/290980.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/sunzhong/services/trackbacks/290980.html</trackback:ping><description><![CDATA[对汉字的unicode编码有问题,下面先看看通过代码是如何解决的.<br />
/*<br />
* UnicodeTest.java<br />
*<br />
* Created on July 29, 2003, 12:59 PM<br />
*/<br />
<br />
/**<br />
　*<br />
　* @author　abc<br />
　* @version<br />
　*/<br />
<br />
public class UnicodeTest<br />
{<br />
<br />
　 public static void main(String args[])<br />
　 {<br />
　　　UnicodeTest　UT = new UnicodeTest();<br />
　　　UT.test1();<br />
　 }<br />
<br />
　 public void test1()<br />
　 {<br />
　　　String str = "测试信息abc123";<br />
　　　try<br />
　　　{<br />
　　　　 byte[] b = str.getBytes("GBK");<br />
　　　　 System.out.println(str + " -(GBK)编码: " + bytesToHexStr(b));<br />
　　　　 System.out.println("");<br />
<br />
　　　　 str = new String(b, "GBK");<br />
　　　　 System.out.println("从GBK编码 "　+ bytesToHexStr(b) + " 重新转换为字串: " + str);<br />
　　　　 System.out.println("");<br />
<br />
　　　　 b = str.getBytes("UnicodeBigUnmarked");<br />
　　　　 System.out.println(str + " -(UCS2)编码: " + bytesToHexStr(b));<br />
　　　　 System.out.println("");<br />
<br />
　　　　 str = new String(b, "UnicodeBigUnmarked");<br />
　　　　 System.out.println("从(UCS2)编码 "　+ bytesToHexStr(b) + " 重新转换为字串: " + str);<br />
　　　　 System.out.println("");<br />
<br />
　　　　 b = str.getBytes("ASCII");<br />
　　　　 System.out.println(str + " -(ASCII)编码: " + bytesToHexStr(b));<br />
　　　　 System.out.println("");<br />
　　　}<br />
　　　catch(Exception e){}<br />
　 }<br />
<br />
　 private String bytesToHexStr(byte[] b)<br />
　 {<br />
　　　if (b == null) return "";<br />
　　　StringBuffer strBuffer = new StringBuffer(b.length * 3);<br />
　　　for(int i = 0; i &lt; b.length; i++)<br />
　　　{<br />
　　　　 strBuffer.append(Integer.toHexString(b<em> &amp; 0xff));<br />
　　　　</em> strBuffer.append(" ");<br />
　　　}<br />
　　　return strBuffer.toString();<br />
　 }<br />
<br />
}<br />
<br />
运行此小程序的输出结果是：<br />
<br />
<br />
测试信息abc123 -(GBK)编码: b2 e2 ca d4 d0 c5 cf a2 61 62 63 31 32 33<br />
<br />
从GBK编码 b2 e2 ca d4 d0 c5 cf a2 61 62 63 31 32 33　重新转换为字串: 测试信息abc123<br />
<br />
测试信息abc123 -(UCS2)编码: 6d 4b 8b d5 4f e1 60 6f 0 61 0 62 0 63 0 31 0 32 0 33<br />
<br />
从(UCS2)编码 6d 4b 8b d5 4f e1 60 6f 0 61 0 62 0 63 0 31 0 32 0 33　重新转换为字串: 测试信息abc123<br />
<br />
测试信息abc123 -(ASCII)编码: 3f 3f 3f 3f 61 62 63 31 32 33<br />
<br />
<br />
　这段时间都在做电信的SP网关程序，原来我是做web应用的，对数据库之类的java编程比较熟悉。原来也从来没有接触过短信网关方面的系统设计和编程。在这个过程中碰到了几个比较棘手的问题，UCS2的转码就是其中一个。<br />
　刚开始我们业务没有涉及到中文信息，所以没有注意这个问题，用户只需要发送字母和数字就可以了，但是最近几天我如果手机传输中文的话，我接收方就有乱码,同时还发现解析出来的字段MsgFormat=8，所以在java中就只需要一句MessageContent = new String(MessageByte,"UnicodeBigUnmarked"),可以就可以转换过来，再保存到数据库中就不会是乱码了;同样的,要根据字段MsgFormat,找出对应的解码字符集参数。<br />
　进行转换后，我还用了另外一个函数把类似&#8220;８&#8221;这样的GBK编码的阿拉伯数字都转换成了ASCII的数字。这样对业务逻辑有帮助。<br />
　还有一点要说明一下，GB2312是一个比较早版本的中文编码格式，GBK是新的中文编码格式，GBK是GB2312的超集，GB2312是GBK的真子集。&nbsp;
 <img src ="http://www.blogjava.net/sunzhong/aggbug/290980.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/sunzhong/" target="_blank">月光记忆</a> 2009-08-13 12:14 <a href="http://www.blogjava.net/sunzhong/articles/290980.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>java.io包的比较详细解说</title><link>http://www.blogjava.net/sunzhong/articles/290293.html</link><dc:creator>月光记忆</dc:creator><author>月光记忆</author><pubDate>Fri, 07 Aug 2009 16:59:00 GMT</pubDate><guid>http://www.blogjava.net/sunzhong/articles/290293.html</guid><wfw:comment>http://www.blogjava.net/sunzhong/comments/290293.html</wfw:comment><comments>http://www.blogjava.net/sunzhong/articles/290293.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/sunzhong/comments/commentRss/290293.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/sunzhong/services/trackbacks/290293.html</trackback:ping><description><![CDATA[&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; java的核心库java.io提供了全面的IO接口，包括：文件读写，标准设备输出等等。Java中IO是以流为基础进行输入输出的，所有数据被串行化写入输出流，或者从输入流读入。在具体使用中很多初学者对Java.io包的使用非常含糊，本文将详细解说关于Java.io的使用。<br />
　　<br />
　　　　一． Input和Output <br />
　　<br />
　　　　1. stream代表的是任何有能力产出数据的数据源，或是任何有能力接收数据的接收源。在Java的IO系统中，所有的stream（包括Input和Out stream）都包括两种类型：<br />
　　<br />
　　　　1.1 以字节为导向的stream<br />
　　<br />
　　　　以字节为导向的stream，表示以字节为单位从stream中读取或往stream中写入信息。以字节为导向的stream包括下面几种类型：<br />
　　<br />
　　　　inputstream：<br />
　　<br />
　　　　1) ByteArrayInputStream：把内存中的一个缓冲区作为InputStream使用<br />
　　<br />
　　　　2) StringBufferInputStream：把一个String对象作为InputStream<br />
　　<br />
　　　　3) FileInputStream：把一个文件作为InputStream，实现对文件的读取操作<br />
　　<br />
　　　　4) PipedInputStream：实现了pipe的概念，主要在线程中使用<br />
　　<br />
　　　　5) SequenceInputStream：把多个InputStream合并为一个InputStream<br />
　　<br />
　　　　Outstream<br />
　　<br />
　　　　1) ByteArrayOutputStream：把信息存入内存中的一个缓冲区中<br />
　　<br />
　　　　2) FileOutputStream：把信息存入文件中<br />
　　<br />
　　　　3) PipedOutputStream：实现了pipe的概念，主要在线程中使用<br />
　　<br />
　　　　4) SequenceOutputStream：把多个OutStream合并为一个OutStream<br />
　　<br />
　　　　1.2 以Unicode字符为导向的stream<br />
　　<br />
　　　　以Unicode字符为导向的stream，表示以Unicode字符为单位从stream中读取或往stream中写入信息。以Unicode字符为导向的stream包括下面几种类型：<br />
　　<br />
　　　　Reader<br />
　　<br />
　　　　1) CharArrayReader：与ByteArrayInputStream对应<br />
　　<br />
　　　　2) StringReader：与StringBufferInputStream对应<br />
　　<br />
　　　　3) FileReader：与FileInputStream对应<br />
　　<br />
　　　　4) PipedReader：与PipedInputStream对应<br />
　　<br />
　　　　Write<br />
　　<br />
　　　　1) CharArrayWrite：与ByteArrayOutputStream对应<br />
　　<br />
　　　　2) StringWrite：无与之对应的以字节为导向的stream<br />
　　<br />
　　　　3) FileWrite：与FileOutputStream对应<br />
　　<br />
　　　　4) PipedWrite：与PipedOutputStream对应<br />
　　<br />
　　　　以字符为导向的stream基本上对有与之相对应的以字节为导向的stream。两个对应类实现的功能相同，字是在操作时的导向不同。如 CharArrayReader：和ByteArrayInputStream的作用都是把内存中的一个缓冲区作为InputStream使用，所不同的 是前者每次从内存中读取一个字节的信息，而后者每次从内存中读取一个字符。<br />
　　<br />
　　　　1.3 两种不现导向的stream之间的转换<br />
　　<br />
　　　　InputStreamReader和OutputStreamReader：把一个以字节为导向的stream转换成一个以字符为导向的stream。<br />
　　<br />
　　　　2. stream添加属性<br />
　　<br />
　　　　2.1 &#8220;为stream添加属性&#8221;的作用<br />
　　<br />
　　　　运用上面介绍的Java中操作IO的API，我们就可完成我们想完成的任何操作了。但通过FilterInputStream和FilterOutStream的子类，我们可以为stream添加属性。下面以一个例子来说明这种功能的作用。<br />
　　<br />
　　　　如果我们要往一个文件中写入数据，我们可以这样操作：<br />
　　<br />
　　FileOutStream fs = new FileOutStream(&#8220;test.txt&#8221;);<br />
　　<br />
　　　　然后就可以通过产生的fs对象调用write()函数来往test.txt文件中写入数据了。但是，如果我们想实现&#8220;先把要写入文件的数据先缓存到内存 中，再把缓存中的数据写入文件中&#8221;的功能时，上面的API就没有一个能满足我们的需求了。但是通过FilterInputStream和 FilterOutStream的子类，为FileOutStream添加我们所需要的功能。<br />
　　<br />
　　　　2.2 FilterInputStream的各种类型<br />
　　<br />
　　　　2.2.1 用于封装以字节为导向的InputStream<br />
　　<br />
　　　　1) DataInputStream：从二进制流中读取基本类型（int、char等）数据。<br />
　　<br />
　　　　2) BufferedInputStream：使用缓冲区<br />
　　<br />
　　　　3) LineNumberInputStream：会记录input stream内的行数，然后可以调用getLineNumber()和setLineNumber(int)<br />
　　<br />
　　　　4) PushbackInputStream：很少用到，一般用于编译器开发<br />
　　<br />
　　　　2.2.2 用于封装以字符为导向的InputStream<br />
　　<br />
　　　　1) 没有与DataInputStream对应的类。除非在要使用readLine()时改用BufferedReader，否则使用DataInputStream<br />
　　<br />
　　　　2) BufferedReader：与BufferedInputStream对应<br />
　　<br />
　　　　3) LineNumberReader：与LineNumberInputStream对应<br />
　　<br />
　　　　4) PushBackReader：与PushbackInputStream对应<br />
　　<br />
　　　　2.3 FilterOutStream的各种类型<br />
　　<br />
　　　　2.2.3 用于封装以字节为导向的OutputStream<br />
　　<br />
　　　　1) DataOutStream：往stream中输出基本类型（int、char等）数据。<br />
　　<br />
　　　　2) BufferedOutStream：使用缓冲区<br />
　　<br />
　　　　3) PrintStream：产生格式化输出(与PrintWrite有一定区别)<br />
　　<br />
　　　　2.2.4 用于封装以字符为导向的OutputStream<br />
　　<br />
　　　　1) BufferedWrite：与对应<br />
　　<br />
　　　　2) PrintWrite：与对应<br />
　　<br />
　　　　3. RandomAccessFile<br />
　　<br />
　　　　1) 可通过RandomAccessFile对象完成对文件的读写操作<br />
　　<br />
　　　　2) 在产生一个对象时，可指明要打开的文件的性质：r，只读；w，只写；rw可读写<br />
　　<br />
　　　　3) 可以直接跳到文件中指定的位置<br />
&nbsp;&nbsp;&nbsp; 4&nbsp;I/O应用的一个例子,以下几个小片段都是体现了一个对流的使用思路: 先建立基础流(File/ByteArray/String打头的),再在基础上升级到优化流(以Buffered打头或者是Out/InputStreamReader)最后就是一些高级流的操作,比如以Data/Print打头的流<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br />
&nbsp;&nbsp;
<div style="border-right: #cccccc 1px solid; padding-right: 5px; border-top: #cccccc 1px solid; padding-left: 4px; font-size: 13px; padding-bottom: 4px; border-left: #cccccc 1px solid; width: 98%; word-break: break-all; padding-top: 4px; border-bottom: #cccccc 1px solid; height: 1330px; background-color: #eeeeee"><span style="color: #0000ff">import</span><span style="color: #000000">&nbsp;java.io.</span><span style="color: #000000">*</span><span style="color: #000000">;&nbsp;&nbsp;&nbsp;<br />
</span><span style="color: #0000ff">public</span><span style="color: #000000">&nbsp;</span><span style="color: #0000ff">class</span><span style="color: #000000">&nbsp;TestIO{&nbsp;&nbsp;&nbsp;<br />
&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">public</span><span style="color: #000000">&nbsp;</span><span style="color: #0000ff">static</span><span style="color: #000000">&nbsp;</span><span style="color: #0000ff">void</span><span style="color: #000000">&nbsp;main(String[]&nbsp;args)&nbsp;</span><span style="color: #0000ff">throws</span><span style="color: #000000">&nbsp;IOException{&nbsp;&nbsp;&nbsp;<br />
</span><span style="color: #008000">//</span><span style="color: #008000">1.以行为单位从一个文件读取数据&nbsp;,当读取文件时，先把文件内容读到缓存中，当调用in.readLine()时，再从缓存中以字符的方式读取数据（以下简称&#8220;缓存字节读取方式&#8221;）。&nbsp;&nbsp;</span><span style="color: #008000"><br />
</span><span style="color: #000000">&nbsp;&nbsp;&nbsp;&nbsp;BufferedReader&nbsp;in&nbsp;</span><span style="color: #000000">=</span><span style="color: #0000ff">new</span><span style="color: #000000">&nbsp;BufferedReader(</span><span style="color: #0000ff">new</span><span style="color: #000000">&nbsp;FileReader(</span><span style="color: #000000">"</span><span style="color: #000000">F:\&nbsp;</span><span style="color: #000000">epalonTestIO.java</span><span style="color: #000000">"</span><span style="color: #000000">));&nbsp;&nbsp;&nbsp;</span><span style="color: #000000"><br />
</span><span style="color: #000000">&nbsp;&nbsp;&nbsp;&nbsp;String&nbsp;s,&nbsp;s2&nbsp;</span><span style="color: #000000">=</span><span style="color: #000000">&nbsp;</span><span style="color: #0000ff">new</span><span style="color: #000000">&nbsp;String();&nbsp;&nbsp;&nbsp;<br />
&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">while</span><span style="color: #000000">((s&nbsp;</span><span style="color: #000000">=</span><span style="color: #000000">&nbsp;in.readLine())&nbsp;</span><span style="color: #000000">!=</span><span style="color: #000000">&nbsp;</span><span style="color: #0000ff">null</span><span style="color: #000000">)&nbsp;&nbsp;&nbsp;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;s2&nbsp;</span><span style="color: #000000">+=</span><span style="color: #000000">&nbsp;s&nbsp;</span><span style="color: #000000">+</span><span style="color: #000000">&nbsp;</span><span style="color: #000000">"</span><span style="color: #000000">\\</span><span style="color: #000000">"</span><span style="color: #000000">;&nbsp;&nbsp;&nbsp;<br />
&nbsp;&nbsp;&nbsp;&nbsp;in.close();&nbsp;&nbsp;&nbsp;<br />
&nbsp;&nbsp;<br />
</span><span style="color: #008000">//</span><span style="color: #008000">1b.&nbsp;接收键盘的输入&nbsp;&nbsp;&nbsp;,由于想以缓存字节读取方式从标准IO（键盘）中读取数据，所以要先把标准IO（System.in）转换成字符导向的stream，再进行BufferedReader封装。</span><span style="color: #008000"><br />
</span><span style="color: #000000">&nbsp;&nbsp;&nbsp;&nbsp;BufferedReader&nbsp;stdin&nbsp;</span><span style="color: #000000">=</span><span style="color: #0000ff">new</span><span style="color: #000000">&nbsp;BufferedReader(</span><span style="color: #0000ff">new</span><span style="color: #000000">&nbsp;InputStreamReader(System.in));&nbsp;&nbsp;&nbsp;<br />
&nbsp;&nbsp;&nbsp;&nbsp;System.out.println(\</span><span style="color: #000000">"</span><span style="color: #000000">Enter&nbsp;a&nbsp;line:\</span><span style="color: #000000">"</span><span style="color: #000000">);&nbsp;&nbsp;&nbsp;<br />
&nbsp;&nbsp;&nbsp;&nbsp;System.out.println(stdin.readLine());&nbsp;&nbsp;&nbsp;<br />
&nbsp;&nbsp;<br />
</span><span style="color: #008000">//</span><span style="color: #008000">2.&nbsp;从一个String对象中读取数据&nbsp;&nbsp;&nbsp;, 要以字符的形式从一个String对象中读取数据，所以要产生一个StringReader类型的stream</span><span style="color: #008000"><br />
</span><span style="color: #000000">&nbsp;&nbsp;&nbsp;&nbsp;StringReader&nbsp;in2&nbsp;</span><span style="color: #000000">=</span><span style="color: #000000">&nbsp;</span><span style="color: #0000ff">new</span><span style="color: #000000">&nbsp;StringReader(s2);&nbsp;&nbsp;&nbsp;<br />
&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">int</span><span style="color: #000000">&nbsp;c;&nbsp;&nbsp;&nbsp;<br />
&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">while</span><span style="color: #000000">((c&nbsp;</span><span style="color: #000000">=</span><span style="color: #000000">&nbsp;in2.read())&nbsp;</span><span style="color: #000000">!=</span><span style="color: #000000">&nbsp;</span><span style="color: #000000">-</span><span style="color: #000000">1</span><span style="color: #000000">)&nbsp;&nbsp;&nbsp;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;System.out.println((</span><span style="color: #0000ff">char</span><span style="color: #000000">)c);&nbsp;&nbsp;&nbsp;<br />
&nbsp;&nbsp;&nbsp;&nbsp;in2.close();&nbsp;&nbsp;&nbsp;<br />
&nbsp;&nbsp;<br />
</span><span style="color: #008000">//</span><span style="color: #008000">3.&nbsp;从内存取出格式化输入&nbsp;&nbsp;&nbsp;</span><span style="color: #008000"><br />
</span><span style="color: #000000">&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">try</span><span style="color: #000000">{&nbsp;&nbsp;&nbsp;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;DataInputStream&nbsp;in3&nbsp;</span><span style="color: #000000">=</span><span style="color: #0000ff">new</span><span style="color: #000000">&nbsp;DataInputStream(</span><span style="color: #0000ff">new</span><span style="color: #000000">&nbsp;ByteArrayInputStream(s2.getBytes()));&nbsp;&nbsp;&nbsp;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">while</span><span style="color: #000000">(</span><span style="color: #0000ff">true</span><span style="color: #000000">)&nbsp;&nbsp;&nbsp;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;System.out.println((</span><span style="color: #0000ff">char</span><span style="color: #000000">)in3.readByte());&nbsp;&nbsp;&nbsp;<br />
&nbsp;&nbsp;&nbsp;&nbsp;}&nbsp;&nbsp;&nbsp;<br />
&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">catch</span><span style="color: #000000">(EOFException&nbsp;e){&nbsp;&nbsp;&nbsp;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;System.out.println(\</span><span style="color: #000000">"</span><span style="color: #000000">End&nbsp;of&nbsp;stream\</span><span style="color: #000000">"</span><span style="color: #000000">);&nbsp;&nbsp;&nbsp;<br />
&nbsp;&nbsp;&nbsp;&nbsp;}&nbsp;&nbsp;&nbsp;<br />
&nbsp;&nbsp;<br />
</span><span style="color: #008000">//</span><span style="color: #008000">4.&nbsp;输出到文件&nbsp;&nbsp;&nbsp;对String对象s2读取数据时，先把对象中的数据存入缓存中，再从缓冲中进行读取；对TestIO.out文件进行操作时，先把格式化后的信息输出到缓存中，再把缓存中的信息输出到文件中。<br />
</span><span style="color: #008000"><br />
</span><span style="color: #000000">&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">try</span><span style="color: #000000">{&nbsp;&nbsp;&nbsp;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;BufferedReader&nbsp;in4&nbsp;</span><span style="color: #000000">=</span><span style="color: #0000ff">new</span><span style="color: #000000">&nbsp;BufferedReader(</span><span style="color: #0000ff">new</span><span style="color: #000000">&nbsp;StringReader(s2));&nbsp;</span><span style="color: #008000">//</span><span style="color: #008000">把s2当作输入对象&nbsp;&nbsp;&nbsp;</span><span style="color: #008000"><br />
</span><span style="color: #000000">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;PrintWriter&nbsp;out1&nbsp;</span><span style="color: #000000">=</span><span style="color: #0000ff">new</span><span style="color: #000000">&nbsp;PrintWriter(</span><span style="color: #0000ff">new</span><span style="color: #000000">&nbsp;BufferedWriter(</span><span style="color: #0000ff">new</span><span style="color: #000000">&nbsp;FileWriter(</span><span style="color: #000000">"</span><span style="color: #000000">F:\epalon&nbsp;TestIO.out</span><span style="color: #000000">"</span><span style="color: #000000">)));&nbsp;&nbsp;&nbsp;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">int</span><span style="color: #000000">&nbsp;lineCount&nbsp;</span><span style="color: #000000">=</span><span style="color: #000000">&nbsp;</span><span style="color: #000000">1</span><span style="color: #000000">;&nbsp;&nbsp;&nbsp;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">while</span><span style="color: #000000">((s&nbsp;</span><span style="color: #000000">=</span><span style="color: #000000">&nbsp;in4.readLine())&nbsp;</span><span style="color: #000000">!=</span><span style="color: #000000">&nbsp;</span><span style="color: #0000ff">null</span><span style="color: #000000">)&nbsp;&nbsp;&nbsp;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;out1.println(lineCount&nbsp;&nbsp;</span><span style="color: #000000">+</span><span style="color: #000000">&nbsp;\</span><span style="color: #000000">"</span><span style="color: #000000">：\</span><span style="color: #000000">"</span><span style="color: #000000">&nbsp;</span><span style="color: #000000">+</span><span style="color: #000000">&nbsp;s);&nbsp;&nbsp;&nbsp;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;out1.close();&nbsp;&nbsp;&nbsp;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;in4.close();&nbsp;&nbsp;&nbsp;<br />
&nbsp;&nbsp;&nbsp;&nbsp;}&nbsp;&nbsp;&nbsp;<br />
&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">catch</span><span style="color: #000000">(EOFException&nbsp;ex){&nbsp;&nbsp;&nbsp;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;System.out.println(</span><span style="color: #000000">"</span><span style="color: #000000">End&nbsp;of&nbsp;stream</span><span style="color: #000000">"</span><span style="color: #000000">);&nbsp;&nbsp;&nbsp;<br />
&nbsp;&nbsp;&nbsp;&nbsp;}&nbsp;&nbsp;&nbsp;<br />
&nbsp;&nbsp;<br />
</span><span style="color: #008000">//</span><span style="color: #008000">5.&nbsp;数据的存储和恢复&nbsp;&nbsp;&nbsp;对Data.txt文件进行输出时，是先把基本类型的数据输出到缓存中，再把缓存中的数据输出到文件中；对文件进行读取操作时，先把文件中的数据读取到缓存中，再从缓存中以基本类型的形式进行读取。</span><span style="color: #008000"><br />
</span><span style="color: #000000">&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">try</span><span style="color: #000000">{&nbsp;&nbsp;&nbsp;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;DataOutputStream&nbsp;out2&nbsp;</span><span style="color: #000000">=</span><span style="color: #000000">&nbsp;</span><span style="color: #0000ff">new</span><span style="color: #000000">&nbsp;DataOutputStream(</span><span style="color: #0000ff">new</span><span style="color: #000000">&nbsp;BufferedOutputStream(</span><span style="color: #0000ff">new</span><span style="color: #000000">&nbsp;FileOutputStream(</span><span style="color: #000000">"</span><span style="color: #000000">F:\epalon&nbsp;Data.txt</span><span style="color: #000000">"</span><span style="color: #000000">)));&nbsp;&nbsp;&nbsp;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;out2.writeDouble(</span><span style="color: #000000">3.1415926</span><span style="color: #000000">);&nbsp;&nbsp;&nbsp;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;out2.writeChars(</span><span style="color: #000000">"</span><span style="color: #000000">&nbsp;Thas&nbsp;was&nbsp;pi:writeChars&nbsp;</span><span style="color: #000000">"</span><span style="color: #000000">);&nbsp;&nbsp;&nbsp;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;out2.writeBytes(&nbsp;</span><span style="color: #000000">"</span><span style="color: #000000">Thas&nbsp;was&nbsp;pi:writeByte&nbsp;</span><span style="color: #000000">"</span><span style="color: #000000">);&nbsp;&nbsp;&nbsp;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;out2.close();&nbsp;&nbsp;&nbsp;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;DataInputStream&nbsp;in5&nbsp;</span><span style="color: #000000">=</span><span style="color: #000000">&nbsp;</span><span style="color: #0000ff">new</span><span style="color: #000000">&nbsp;DataInputStream(</span><span style="color: #0000ff">new</span><span style="color: #000000">&nbsp;BufferedInputStream(</span><span style="color: #0000ff">new</span><span style="color: #000000">&nbsp;FileInputStream(\</span><span style="color: #000000">"</span><span style="color: #000000">F:epalon&nbsp;Data.txt\</span><span style="color: #000000">"</span><span style="color: #000000">)));&nbsp;&nbsp;&nbsp;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;BufferedReader&nbsp;in5br&nbsp;</span><span style="color: #000000">=</span><span style="color: #000000">&nbsp;</span><span style="color: #0000ff">new</span><span style="color: #000000">&nbsp;BufferedReader(</span><span style="color: #0000ff">new</span><span style="color: #000000">&nbsp;InputStreamReader(in5));&nbsp;&nbsp;&nbsp;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;System.out.println(in5.readDouble());&nbsp;&nbsp;&nbsp;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;System.out.println(in5br.readLine());&nbsp;&nbsp;&nbsp;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;System.out.println(in5br.readLine());&nbsp;&nbsp;&nbsp;<br />
&nbsp;&nbsp;&nbsp;&nbsp;}&nbsp;&nbsp;&nbsp;<br />
&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">catch</span><span style="color: #000000">(EOFException&nbsp;e){&nbsp;&nbsp;&nbsp;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;System.out.println(\</span><span style="color: #000000">"</span><span style="color: #000000">End&nbsp;of&nbsp;stream\</span><span style="color: #000000">"</span><span style="color: #000000">);&nbsp;&nbsp;&nbsp;<br />
&nbsp;&nbsp;&nbsp;&nbsp;}&nbsp;&nbsp;&nbsp;<br />
&nbsp;&nbsp;<br />
</span><span style="color: #008000">//</span><span style="color: #008000">6.&nbsp;通过RandomAccessFile操作文件&nbsp;&nbsp;&nbsp;</span><span style="color: #008000"><br />
</span><span style="color: #000000">&nbsp;&nbsp;&nbsp;&nbsp;RandomAccessFile&nbsp;rf&nbsp;</span><span style="color: #000000">=</span><span style="color: #000000">&nbsp;</span><span style="color: #0000ff">new</span><span style="color: #000000">&nbsp;RandomAccessFile(</span><span style="color: #000000">"</span><span style="color: #000000">F:\epalon&nbsp;rtest.dat</span><span style="color: #000000">"</span><span style="color: #000000">,&nbsp;</span><span style="color: #000000">"</span><span style="color: #000000">rw</span><span style="color: #000000">"</span><span style="color: #000000">);&nbsp;&nbsp;&nbsp;<br />
&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">for</span><span style="color: #000000">(</span><span style="color: #0000ff">int</span><span style="color: #000000">&nbsp;i</span><span style="color: #000000">=</span><span style="color: #000000">0</span><span style="color: #000000">;&nbsp;i</span><span style="color: #000000">&lt;</span><span style="color: #000000">10</span><span style="color: #000000">;&nbsp;i</span><span style="color: #000000">++</span><span style="color: #000000">)&nbsp;&nbsp;&nbsp;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;rf.writeDouble(i</span><span style="color: #000000">*</span><span style="color: #000000">1.414</span><span style="color: #000000">);&nbsp;&nbsp;&nbsp;<br />
&nbsp;&nbsp;&nbsp;&nbsp;rf.close();&nbsp;&nbsp;&nbsp;<br />
&nbsp;&nbsp;<br />
&nbsp;&nbsp;&nbsp;&nbsp;rf&nbsp;</span><span style="color: #000000">=</span><span style="color: #000000">&nbsp;</span><span style="color: #0000ff">new</span><span style="color: #000000">&nbsp;RandomAccessFile(</span><span style="color: #000000">"</span><span style="color: #000000">F:\epalon&nbsp;rtest.dat</span><span style="color: #000000">"</span><span style="color: #000000">,&nbsp;</span><span style="color: #000000">"</span><span style="color: #000000">r</span><span style="color: #000000">"</span><span style="color: #000000">);&nbsp;&nbsp;&nbsp;<br />
&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">for</span><span style="color: #000000">(</span><span style="color: #0000ff">int</span><span style="color: #000000">&nbsp;i</span><span style="color: #000000">=</span><span style="color: #000000">0</span><span style="color: #000000">;&nbsp;i</span><span style="color: #000000">&lt;</span><span style="color: #000000">10</span><span style="color: #000000">;&nbsp;i</span><span style="color: #000000">++</span><span style="color: #000000">)&nbsp;&nbsp;&nbsp;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;System.out.println(</span><span style="color: #000000">"</span><span style="color: #000000">Value&nbsp;</span><span style="color: #000000">"</span><span style="color: #000000">&nbsp;</span><span style="color: #000000">+</span><span style="color: #000000">&nbsp;i&nbsp;</span><span style="color: #000000">+</span><span style="color: #000000">&nbsp;</span><span style="color: #000000">"</span><span style="color: #000000">：</span><span style="color: #000000">"</span><span style="color: #000000">&nbsp;</span><span style="color: #000000">+</span><span style="color: #000000">&nbsp;rf.readDouble());&nbsp;&nbsp;&nbsp;<br />
&nbsp;&nbsp;&nbsp;&nbsp;rf.close();&nbsp;&nbsp;&nbsp;<br />
&nbsp;&nbsp;<br />
&nbsp;&nbsp;&nbsp;&nbsp;rf&nbsp;</span><span style="color: #000000">=</span><span style="color: #000000">&nbsp;</span><span style="color: #0000ff">new</span><span style="color: #000000">&nbsp;RandomAccessFile(</span><span style="color: #000000">"</span><span style="color: #000000">F:epalon&nbsp;rtest.dat</span><span style="color: #000000">"</span><span style="color: #000000">,&nbsp;</span><span style="color: #000000">"</span><span style="color: #000000">rw</span><span style="color: #000000">"</span><span style="color: #000000">);&nbsp;&nbsp;&nbsp;<br />
&nbsp;&nbsp;&nbsp;&nbsp;rf.seek(</span><span style="color: #000000">5</span><span style="color: #000000">*</span><span style="color: #000000">8</span><span style="color: #000000">);&nbsp;&nbsp;&nbsp;<br />
&nbsp;&nbsp;&nbsp;&nbsp;rf.writeDouble(</span><span style="color: #000000">47.0001</span><span style="color: #000000">);&nbsp;&nbsp;&nbsp;<br />
&nbsp;&nbsp;&nbsp;&nbsp;rf.close();&nbsp;&nbsp;&nbsp;<br />
&nbsp;&nbsp;<br />
&nbsp;&nbsp;&nbsp;&nbsp;rf&nbsp;</span><span style="color: #000000">=</span><span style="color: #000000">&nbsp;</span><span style="color: #0000ff">new</span><span style="color: #000000">&nbsp;RandomAccessFile(</span><span style="color: #000000">"</span><span style="color: #000000">F:\epalon&nbsp;rtest.dat</span><span style="color: #000000">"</span><span style="color: #000000">,&nbsp;</span><span style="color: #000000">"</span><span style="color: #000000">r</span><span style="color: #000000">"</span><span style="color: #000000">);&nbsp;&nbsp;&nbsp;<br />
&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">for</span><span style="color: #000000">(</span><span style="color: #0000ff">int</span><span style="color: #000000">&nbsp;i</span><span style="color: #000000">=</span><span style="color: #000000">0</span><span style="color: #000000">;&nbsp;i</span><span style="color: #000000">&lt;</span><span style="color: #000000">10</span><span style="color: #000000">;&nbsp;i</span><span style="color: #000000">++</span><span style="color: #000000">)&nbsp;&nbsp;&nbsp;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;System.out.println(</span><span style="color: #000000">"</span><span style="color: #000000">Value&nbsp;</span><span style="color: #000000">"</span><span style="color: #000000">&nbsp;</span><span style="color: #000000">+</span><span style="color: #000000">&nbsp;i&nbsp;</span><span style="color: #000000">+</span><span style="color: #000000">&nbsp;</span><span style="color: #000000">":</span><span style="color: #000000">"</span><span style="color: #000000">&nbsp;</span><span style="color: #000000">+</span><span style="color: #000000">&nbsp;rf.readDouble());&nbsp;&nbsp;&nbsp;<br />
&nbsp;&nbsp;&nbsp;&nbsp;rf.close();&nbsp;&nbsp;&nbsp;<br />
&nbsp;&nbsp;&nbsp;&nbsp;}&nbsp;&nbsp;&nbsp;<br />
}&nbsp;&nbsp;</span></div>
<br />
<img src ="http://www.blogjava.net/sunzhong/aggbug/290293.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/sunzhong/" target="_blank">月光记忆</a> 2009-08-08 00:59 <a href="http://www.blogjava.net/sunzhong/articles/290293.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item></channel></rss>