Java中IO整理完整版(3)

2025-07-22

?? }

查看hello.txt会看到“你好”

当然也可以一个字节一个字节的写。

?? /** ?? * 字节流

?? * 向文件中一个字节一个字节的写入字符串 ?? * */

?? import java.io.*; ?? class hello{

?? public static void main(String[] args) throws IOException { ?? String fileName=\ ?? File f=new File(fileName);

?? OutputStream out =new FileOutputStream(f); ?? String str=\你好\

?? byte[] b=str.getBytes();

?? for (int i = 0; i < b.length; i++) { ?? out.write(b[i]); ?? }

?? out.close(); ?? } ?? }

结果还是:“你好”

向文件中追加新内容:

?? /** ?? * 字节流

?? * 向文件中追加新内容: ?? * */

?? import java.io.*; ??? class hello{

??? public static void main(String[] args) throws IOException { ??? String fileName=\ ??? File f=new File(fileName);

??? OutputStream out =new FileOutputStream(f,true); ??? String str=\

??? //String str=\可以换行 ??? byte[] b=str.getBytes();

??? for (int i = 0; i < b.length; i++) { ??? out.write(b[i]);

??? }

??? out.close(); ??? } ??? }

【运行结果】: 你好Rollen

【读取文件内容】

??? /** ??? * 字节流 ??? * 读文件内容 ??? * */

??? import java.io.*; ??? class hello{

??? public static void main(String[] args) throws IOException { ??? String fileName=\ ??? File f=new File(fileName);

??? InputStream in=new FileInputStream(f); ??? byte[] b=new byte[1024]; ??? in.read(b); ??? in.close();

??? System.out.println(new String(b)); ??? } ??? }

【运行结果】 你好Rollen

Rollen_

但是这个例子读取出来会有大量的空格,我们可以利用in.read(b);的返回值来设计程序。如下:

??? /** ??? * 字节流 ??? * 读文件内容 ??? * */

??? import java.io.*; ??? class hello{

??? public static void main(String[] args) throws IOException {

??? String fileName=\ ??? File f=new File(fileName);

??? InputStream in=new FileInputStream(f); ??? byte[] b=new byte[1024]; ??? int len=in.read(b); ??? in.close();

??? System.out.println(\读入长度为:\ ??? System.out.println(new String(b,0,len)); ??? } ??? }

【运行结果】: 读入长度为:18

你好Rollen

Rollen

读者观察上面的例子可以看出,我们预先申请了一个指定大小的空间,但是有时候这个空间可能太小,有时候可能太大,我们需要准确的大小,这样节省空间,那么我们可以这样干:

??? /** ??? * 字节流

??? * 读文件内容,节省空间 ??? * */

??? import java.io.*; ??? class hello{

??? public static void main(String[] args) throws IOException { ??? String fileName=\ ??? File f=new File(fileName);

??? InputStream in=new FileInputStream(f); ??? byte[] b=new byte[(int)f.length()]; ??? in.read(b);

??? System.out.println(\文件长度为:\??? in.close();

??? System.out.println(new String(b)); ??? } ??? }

文件长度为:18

你好Rollen

Rollen

将上面的例子改为一个一个读:

??? /** ??? * 字节流

??? * 读文件内容,节省空间 ??? * */

??? import java.io.*; ??? class hello{

??? public static void main(String[] args) throws IOException { ??? String fileName=\ ??? File f=new File(fileName);

??? InputStream in=new FileInputStream(f); ??? byte[] b=new byte[(int)f.length()]; ??? for (int i = 0; i < b.length; i++) { ??? b[i]=(byte)in.read(); ??? }

??? in.close();

??? System.out.println(new String(b)); ??? } ??? }

输出的结果和上面的一样。

细心的读者可能会发现,上面的几个例子都是在知道文件的内容多大,然后才展开的,有时候我们不知道文件有多大,这种情况下,我们需要判断是否独到文件的末尾。

??? /** ??? * 字节流 ??? *读文件 ??? * */

??? import java.io.*; ??? class hello{

??? public static void main(String[] args) throws IOException { ??? String fileName=\ ??? File f=new File(fileName);

??? InputStream in=new FileInputStream(f); ??? byte[] b=new byte[1024]; ??? int count =0; ??? int temp=0;

??? while((temp=in.read())!=(-1)){

??? b[count++]=(byte)temp; ??? }

??? in.close();

??? System.out.println(new String(b)); ??? } ??? }

【运行结果】 你好Rollen

Rollen_

提醒一下,当独到文件末尾的时候会返回-1.正常情况下是不会返回-1的 三

您所在的位置:开发 > Java > 热点推荐 > Java中的IO整理完整版(3)

Java中的IO整理完整版(3)

2011-09-19 16:17 Rollen Holt Rollen Holt 我要评论(9) 字号:T | T

本文章基本覆盖了java IO的全部内容,java新IO没有涉及,因为我想和这个分开,以突出那个的重要性,新IO哪一篇文章还没有开始写,估计很快就能和大家见面。照旧,文章依旧以例子为主,因为讲解内容的java书很多了,我觉的学以致用才是真。代码是写出来的,不是看出来的。

AD:

字符流

【向文件中写入数据】 现在我们使用字符流

? ? ? ?

/** * 字符流 * 写入数据 * */


Java中IO整理完整版(3).doc 将本文的Word文档下载到电脑 下载失败或者文档不完整,请联系客服人员解决!

下一篇:统计业务知识

相关阅读
本类排行
× 游客快捷下载通道(下载后可以自由复制和排版)

下载本文档需要支付 7

支付方式:

开通VIP包月会员 特价:29元/月

注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
微信:xuecool-com QQ:370150219