输出、输入流同时打开,文本内容消失问题

对某个文本文件同时打开输出及输入流时,如果你使用API不慎,会发现输出流输出为空,原因如下:

public static void main(String[] args) {
        FileInputStream fis = null;
        FileOutputStream fos = null;
        try {
            File file = new File("D://test.txt");

            fis = new FileInputStream(file);
            /**
             * new FileOutputStream(file)
             * new FileOutputStream(file, true)   追加模式
             * 如果不选择追加模式,就会清空原文件内容,类似的有FileWriter(内部维护的是FileOutputStream)等。。。
             */
            fos = new FileOutputStream(file);

            byte[] b = new byte[1024];
            int index = 0;
            while ((index = fis.read(b)) >= 0) {
                System.out.println(new String(b, 0, index));
            }
            //  "\r\n" 为换行符
            fos.write("\r\ntest".getBytes());
        } catch (FileNotFoundException e) {
            e.printStackTrace();
        } catch (IOException e) {
            e.printStackTrace();
        } finally {
            try {
                if (fis != null && fos != null) {
                    fos.close();
                    fis.close();
                }
            } catch (IOException e) {
                e.printStackTrace();
            }
        }

    }
时间: 2024-07-29 16:47:11

输出、输入流同时打开,文本内容消失问题的相关文章

win8不通过新打开窗口进行打开和保存文件,点击即显示文本内容,点击即保存文件

前面的一篇博客讲到通过打开新窗口进行打开和保存文件,这一篇则重点介绍怎样一步到位来进行打开和保存文件(这里还以.txt文本文件为例). 我们要打开.txt文本文件,无非是想要里面的文本内容,并且把其显示到页面里罢了,那我们能不能直接点击按钮就让文件的内容自动显示到页面上............ 而不需要经过打开新窗口这一步骤呢 同样,我们点击保存按钮,能不能就直接给文件命名为自己想要的名称,而且直接保存到自己想要的位置或者文件里........ 而不经过打开新窗口定位某一个具体的文件夹下这一步骤

Textarea 单击鼠标 清除默认字/点击文本域 默认内容消失/点击文本框 删除预置内容

Textarea 单击鼠标 清除默认字/点击文本域 默认内容消失/点击文本框 删除预置内容. Textarea 单击鼠标 清除默认字 点击文本域 默认内容消失 点击文本框 删除预置内容 在留言框.搜索栏或者Email订阅栏中有一段默认的文本,比如“请输入您的内容”,如果你在其中点击(窗体获取焦点),这段默认的文本就会自动消失. 第一步:添加代码方式: <head> …. <script type=”text/javascript”> function clearDefault(el

PDF的文本内容怎么编辑设置

处理文档的时候如果遇到PDF格式的文件需要修改的话就很头疼,文字的编辑也没有word那样方便,而且PDF文件在阅读浏览和编辑上都是由不同软件来进行操作的,这让许多人以为PDF文件是不能编辑的,其实不然,PDF文档的文字也是可以编辑的. PDF文件可以直接进行编辑,用pdf的编辑工具打开文件就可以进行相应的操作.加密的文档只需要输入密码就可以正常操作. 文件打开后一般会有左右两个窗格,页面缩略图和页面编辑区,页面缩略图是用来方便切换当前编辑的页面的.如果没有显示缩略图窗格的话可以通过“视图-页面缩

用Beyond Compare精确查找文本内容的方法

Beyond Compare 4中文版拥有强大的文件夹以及文本比较功能,用户在比较文件的时候特别是比较文本的时候,有时需要找出一些特定的内容,这个时候就可以用到Beyond Compare软件精确查找文本内容的功能,但是一些用户不知道怎么使用这项功能,下面就来给大家分享一下用Beyond Compare精确查找文本内容的方法? 打开Beyond Compare软件,选择文本比较会话,打开会话操作界面.单击“打开文件”按钮,选择需要比较的文本文件.  Beyond Compare文本比较会话操作界

利用Python imaplib和email模块 读取邮件文本内容及附件内容

#! encoding:utf8 ''' 环境: Win10 64位 Python 2.7.5 参考: http://www.pythonclub.org/python-network-application/email-format http://blog.sina.com.cn/s/blog_4deeda2501016eyf.html ''' import imaplib import email def parseHeader(message): """ 解析邮件首部

Android Studio 如何获取 text文本内容

1.找到目录的main先建立assets格式的文件夹 2.再把需要读取的txt 文件放入到该文件夹下(名字随意),这里取 list.txt. 文件内容 格式如下 3.读取文本内容 工具代码 /** * 返回学生名单 以String 数组形式 * * @return */ public String[] initAssets() { try { //获取输入流 InputStream inputStream = getAssets().open("list.txt"); //这里的名字是

linux实用小命令--查看文本内容

一.cat命令 $ cat [参数]filename 这还有一些可以和cat命令一起用的参数,可能对你有所帮助. 1.-n 参数会所有的行加上行号: $ cat -n test1 2.这个功能在检查脚本时很有用.如果只在有文本的行加上行,可以用-b参数. $ cat -b test1  3.最后,如果不让制表符出现,可以用-T参数. $ cat -T test1 -T参数会用^I代替文中的所有制表符. 对于大文件来说,cat看起来就不太方便了.不如看看其他命令吧 二.more命令 使用more命

逃的过初一逃不过十五之三个输入框文本内容检测的实现及测试

上周偷懒来着,就没有完成EditBox的实现,来进行测试...终于,这周逃不过了,老师布置的任务是完成三个文本框的输入并同时检测文本内容... 题目要求如下: 允许1到6个英文字符或数字,按OK结束 有效等价类: 长度:1到6:字符:a-z,A-Z,0-9 无效等价类:长度:0,7:字符:英文.数字以外字符,控制字符,标点符号等 略有不同的地方是这回要求三个文本框同时输入内容,点击OK之后同时对三个文本框的内容进行检测,并输出检测结果. 好~偷懒考虑,我就选择了比较好用的JAVA进行实现,主要原

iOS-UILable多行显示文本内容、根据文本长短自动计算文本框高度

iAronTalk Blog opens. The clean and elegantlife style deduces the deep thought of life. -=-=-=-=-=-=-=--=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-= UILabel作为UIView家族中的一员,其应用广泛,使用方法清晰明了深受发烧友们喜欢,是为首选. 针