java读写文件功能.docx

上传人:b****2 文档编号:17338716 上传时间:2023-07-24 格式:DOCX 页数:28 大小:60.23KB
下载 相关 举报
java读写文件功能.docx_第1页
第1页 / 共28页
java读写文件功能.docx_第2页
第2页 / 共28页
java读写文件功能.docx_第3页
第3页 / 共28页
java读写文件功能.docx_第4页
第4页 / 共28页
java读写文件功能.docx_第5页
第5页 / 共28页
java读写文件功能.docx_第6页
第6页 / 共28页
java读写文件功能.docx_第7页
第7页 / 共28页
java读写文件功能.docx_第8页
第8页 / 共28页
java读写文件功能.docx_第9页
第9页 / 共28页
java读写文件功能.docx_第10页
第10页 / 共28页
java读写文件功能.docx_第11页
第11页 / 共28页
java读写文件功能.docx_第12页
第12页 / 共28页
java读写文件功能.docx_第13页
第13页 / 共28页
java读写文件功能.docx_第14页
第14页 / 共28页
java读写文件功能.docx_第15页
第15页 / 共28页
java读写文件功能.docx_第16页
第16页 / 共28页
java读写文件功能.docx_第17页
第17页 / 共28页
java读写文件功能.docx_第18页
第18页 / 共28页
java读写文件功能.docx_第19页
第19页 / 共28页
java读写文件功能.docx_第20页
第20页 / 共28页
亲,该文档总共28页,到这儿已超出免费预览范围,如果喜欢就下载吧!
下载资源
资源描述

java读写文件功能.docx

《java读写文件功能.docx》由会员分享,可在线阅读,更多相关《java读写文件功能.docx(28页珍藏版)》请在冰点文库上搜索。

java读写文件功能.docx

java读写文件功能

第一楼

在你身上流动的河..

∙博客园

∙闪存

∙首页

∙新随笔

∙联系

∙管理

∙订阅

随笔-24 文章-0 评论-36 

[Java]读取文件方法大全

1、按字节读取文件内容

2、按字符读取文件内容

3、按行读取文件内容

4、随机读取文件内容

public class ReadFromFile {

    /**

     * 以字节为单位读取文件,常用于读二进制文件,如图片、声音、影像等文件。

     */

    public static void readFileByBytes(String fileName) {

        File file = new File(fileName);

        InputStream in = null;

        try {

            System.out.println("以字节为单位读取文件内容,一次读一个字节:

");

            // 一次读一个字节

            in = new FileInputStream(file);

            int tempbyte;

            while ((tempbyte = in.read()) !

= -1) {

                System.out.write(tempbyte);

            }

            in.close();

        } catch (IOException e) {

            e.printStackTrace();

            return;

        }

        try {

            System.out.println("以字节为单位读取文件内容,一次读多个字节:

");

            // 一次读多个字节

            byte[] tempbytes = new byte[100];

            int byteread = 0;

            in = new FileInputStream(fileName);

            ReadFromFile.showAvailableBytes(in);

            // 读入多个字节到字节数组中,byteread为一次读入的字节数

            while ((byteread = in.read(tempbytes)) !

= -1) {

                System.out.write(tempbytes, 0, byteread);

            }

        } catch (Exception e1) {

            e1.printStackTrace();

        } finally {

            if (in !

= null) {

                try {

                    in.close();

                } catch (IOException e1) {

                }

            }

        }

    }

    /**

     * 以字符为单位读取文件,常用于读文本,数字等类型的文件

     */

    public static void readFileByChars(String fileName) {

        File file = new File(fileName);

        Reader reader = null;

        try {

            System.out.println("以字符为单位读取文件内容,一次读一个字节:

");

            // 一次读一个字符

            reader = new InputStreamReader(new FileInputStream(file));

            int tempchar;

            while ((tempchar = reader.read()) !

= -1) {

                // 对于windows下,\r\n这两个字符在一起时,表示一个换行。

                // 但如果这两个字符分开显示时,会换两次行。

                // 因此,屏蔽掉\r,或者屏蔽\n。

否则,将会多出很多空行。

                if (((char) tempchar) !

= '\r') {

                    System.out.print((char) tempchar);

                }

            }

            reader.close();

        } catch (Exception e) {

            e.printStackTrace();

        }

        try {

            System.out.println("以字符为单位读取文件内容,一次读多个字节:

");

            // 一次读多个字符

            char[] tempchars = new char[30];

            int charread = 0;

            reader = new InputStreamReader(new FileInputStream(fileName));

            // 读入多个字符到字符数组中,charread为一次读取字符数

            while ((charread = reader.read(tempchars)) !

= -1) {

                // 同样屏蔽掉\r不显示

                if ((charread == tempchars.length)

                        && (tempchars[tempchars.length - 1] !

= '\r')) {

                    System.out.print(tempchars);

                } else {

                    for (int i = 0; i < charread; i++) {

                        if (tempchars[i] == '\r') {

                            continue;

                        } else {

                            System.out.print(tempchars[i]);

                        }

                    }

                }

            }

        } catch (Exception e1) {

            e1.printStackTrace();

        } finally {

            if (reader !

= null) {

                try {

                    reader.close();

                } catch (IOException e1) {

                }

            }

        }

    }

    /**

     * 以行为单位读取文件,常用于读面向行的格式化文件

     */

    public static void readFileByLines(String fileName) {

        File file = new File(fileName);

        BufferedReader reader = null;

        try {

            System.out.println("以行为单位读取文件内容,一次读一整行:

");

            reader = new BufferedReader(new FileReader(file));

            String tempString = null;

            int line = 1;

            // 一次读入一行,直到读入null为文件结束

            while ((tempString = reader.readLine()) !

= null) {

                // 显示行号

                System.out.println("line " + line + ":

 " + tempString);

                line++;

            }

            reader.close();

        } catch (IOException e) {

            e.printStackTrace();

        } finally {

            if (reader !

= null) {

                try {

                    reader.close();

                } catch (IOException e1) {

                }

            }

        }

    }

    /**

     * 随机读取文件内容

     */

    public static void readFileByRandomAccess(String fileName) {

        RandomAccessFile randomFile = null;

        try {

            System.out.println("随机读取一段文件内容:

");

            // 打开一个随机访问文件流,按只读方式

            randomFile = new RandomAccessFile(fileName, "r");

            // 文件长度,字节数

            long fileLength = randomFile.length();

            // 读文件的起始位置

            int beginIndex = (fileLength > 4) ?

 4 :

 0;

            // 将读文件的开始位置移到beginIndex位置。

            randomFile.seek(beginIndex);

            byte[] bytes = new byte[10];

            int byteread = 0;

            // 一次读10个字节,如果文件内容不足10个字节,则读剩下的字节。

            // 将一次读取的字节数赋给byteread

            while ((byteread = randomFile.read(bytes)) !

= -1) {

                System.out.write(bytes, 0, byteread);

            }

        } catch (IOException e) {

            e.printStackTrace();

        } finally {

            if (randomFile !

= null) {

                try {

                    randomFile.close();

                } catch (IOException e1) {

                }

            }

        }

    }

    /**

     * 显示输入流中还剩的字节数

     */

    private static void showAvailableBytes(InputStream in) {

        try {

            System.out.println("当前字节输入流中的字节数为:

" + in.available());

        } catch (IOException e) {

            e.printStackTrace();

        }

    }

    public static void main(String[] args) {

        String fileName = "C:

/temp/newTemp.txt";

        ReadFromFile.readFileByBytes(fileName);

        ReadFromFile.readFileByChars(fileName);

        ReadFromFile.readFileByLines(fileName);

        ReadFromFile.readFileByRandomAccess(fileName);

    }

}

5、将内容追加到文件尾部

public class AppendToFile {

    /**

     * A方法追加文件:

使用RandomAccessFile

     */

    public static void appendMethodA(String fileName, String content) {

        try {

            // 打开一个随机访问文件流,按读写方式

            RandomAccessFile randomFile = new RandomAccessFile(fileName, "rw");

            // 文件长度,字节数

            long fileLength = randomFile.length();

            //将写文件指针移到文件尾。

            randomFile.seek(fileLength);

            randomFile.writeBytes(content);

            randomFile.close();

        } catch (IOException e) {

            e.printStackTrace();

        }

    }

    /**

     * B方法追加文件:

使用FileWriter

     */

    public static void appendMethodB(String fileName, String content) {

        try {

            //打开一个写文件器,构造函数中的第二个参数true表示以追加形式写文件

            FileWriter writer = new FileWriter(fileName, true);

            writer.write(content);

            writer.close();

        } catch (IOException e) {

            e.printStackTrace();

        }

    }

    public static void main(String[] args) {

        String fileName = "C:

/temp/newTemp.txt";

        String content = "new append!

";

        //按方法A追加文件

        AppendToFile.appendMethodA(fileName, content);

        AppendToFile.appendMethodA(fileName, "append end. \n");

        //显示文件内容

        ReadFromFile.readFileByLines(fileName);

        //按方法B追加文件

        AppendToFile.appendMethodB(fileName, content);

        AppendToFile.appendMethodB(fileName, "append end. \n");

        //显示文件内容

        ReadFromFile.readFileByLines(fileName);

    }

}

 

绿色通道:

好文要顶关注我收藏该文与我联系

lovebread

关注-0

粉丝-35

+加关注

7

0

(请您对文章做出评价)

«博主前一篇:

[Java]HashMap的两种排序方式

»博主后一篇:

[C#]正则表达式入门

posted@2009-11-2323:

59lovebread阅读(109980)评论(5)编辑收藏

评论

  

#1楼2011-03-2416:

55|xiaoyue001 

受益!

感谢楼主,支持楼主。

支持(0)反对(0)

  

#2楼[楼主]2011-03-2417:

21|lovebread 

@xiaoyue001

呵谢谢

支持(0)反对(0)

  

#3楼2012-05-2509:

33|Freedom.L 

楼主,请问用3方法读文本是中文乱码怎么解决

支持(0)反对(0)

  

#4楼2012-06-0809:

47|frankonge 

goodcontent

支持(0)反对(0)

  

#5楼2012-07-2315:

50|小浣熊、 

感谢楼主、内容很不错

支持(0)反对(0)

刷新评论刷新页面返回顶部

注册用户登录后才能发表评论,请登录或注册,访问网站首页。

沪江网诚聘中级/高级.NET程序员(社区方向)

园豆兑换阿里云代金券,1元享用阿里云云服务器

博客园首页博问新闻闪存程序员招聘知识库

最新IT新闻:

·测试:

你自认为理解了JavaScript?

·新款XX云手机即将发布XX中国电信首度携手

·传言不实:

好奇号并未在火星上发现有机物

·苹果副总裁曼斯菲尔德套现35000股苹果股票

·SurfacePro续航时间仅为RT版一半

»更多新闻...

最新知识库文章:

·图解HTTPS

·JavaScript开发规范要求

·为什么技术人员普遍都比较难沟通?

·如何成为一名优秀的web前端工程师(前端攻城师)?

·走出浮躁的泥沼

»更多知识库文章...

China-Pub低价书精选

China-Pub计算机绝版图书按需印刷服务

昵称:

lovebread

园龄:

3年

粉丝:

35

关注:

0

+加关注

搜索

 

常用链接

∙我的随笔

∙我的评论

∙我的参与

∙最新评论

∙我的标签

∙更多链接

我的标签

∙Python(5)

∙wpf(3)

∙Rails

(2)

∙Windows

(1)

∙Ajax

(1)

∙C++

(1)

∙Java

(1)

∙Javascript

(1)

∙mysql

(1)

∙Network

(1)

∙更多

随笔档案(24)

∙2011年1月

(1)

∙2010年11月(3)

∙2010年5月(3)

∙2010年3月

(2)

∙2010年1月(3)

∙2009年12月(4)

∙2009年11月(8)

最新评论

∙1.Re:

[WPF]自定义窗体样式

∙先收下了,谢了

∙--但,我知道

∙2.Re:

[WPF]自定义窗体样式

∙谢谢了尤其是多显示器那个很有帮助

∙--不呆和上

∙3.Re:

[Python]字符串加密解密

∙但是第二种方法不能用于linux环境。

∙--垂钓玄武

∙4.Re:

[Java]读取文件方法大全

∙感谢楼主、内容很不错

∙--小浣熊、

∙5.Re:

[Java]读取文件方法大全

∙goodcontent

∙--frankonge

阅读排行榜

∙1.[Java]读取文件方法大全(109980)

∙2.[Python]读写文件方法(12640)

∙3.[Java]HashMap的两种排序方式(9626)

∙4.[C++]MySQL数据库操作实例(8529)

∙5.MySQLGUITools使用简介(4744)

评论排行榜

∙1.[WPF]自定义窗体样式(11)

∙2.[Python]控制台输入密码的方法(5)

∙3.[Java]读取文件方法大全(5)

∙4.[C++]MySQL数据库操作实例(3)

∙5.[Python]登录人人网2011版(3)

推荐排行榜

∙1.[Java]读取文件方法大全(7)

∙2.[WPF]模仿AMDLIVE!

EXPLORER界面

(2)

∙3.[C++]MySQL数据库操作实例

(2)

∙4.[C#]正则表达式入门

(1)

∙5.利用“运行”功能加速windows

(1)

Copyright©2012lovebread

窗体顶端

DZM.528

Lifeisavoyage,notadestination.

java读写文件大全

     注意:

当你写文件的时候,为了提高效率,写入的数据会先放入缓冲区,然后写入文件。

因此有时候你需要主动调用flus

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 人文社科 > 法律资料

copyright@ 2008-2023 冰点文库 网站版权所有

经营许可证编号:鄂ICP备19020893号-2