当前位置:  技术问答>java相关

很简单的文件操作问题,菜鸟级的。

    来源: 互联网  发布时间:2015-08-29

    本文导语:  我想使每运行一下本程序就使count.txt(记数)中的数加1 可我怎么运行,count.txt中都是1??? import java.io.*; public class Hello{ public static void main(String[] args) throws IOException,FileNotFoundException{ File file=new File("count...

我想使每运行一下本程序就使count.txt(记数)中的数加1
可我怎么运行,count.txt中都是1???
import java.io.*;
public class Hello{
public static void main(String[] args) throws IOException,FileNotFoundException{

File file=new File("count.txt");
String str="";
BufferedWriter out=new BufferedWriter(new FileWriter(file));

BufferedReader in=new BufferedReader(new FileReader(file));
if((str=in.readLine())==null)
{out.write("1");
 out.flush();
}
else
{int i=Integer.parseInt(str)+1;
 out.write(i);
 out.flush();
}

in.close();
out.close();
}
}

|
当你使用BufferedWriter out=new BufferedWriter(new FileWriter(file));
语句时,因为没有指定打开文件的方式,所以默认为重新建立文件,所以原文件将被清空,然后你在用in.readline()读时,当然读到的是空文件,当然
str=in.readLine())==null ,
比较好的做法应该是先建立文件读取流,读文件,关闭流,处理数据,建立文件写入流,写文件,关闭流。
顺便提一句,每一句write()语句后不必用flush方法,这样就起不到buffer的作用了。那还不如就干脆使用FileWriter读写文件好了。

|
BufferedWriter out=new BufferedWriter(new FileWriter(file));
你每次都执行这个操作,都会重新建一个“count.txt”,当然每次都写1了。
还有,你写文件的时候用write(int), 读文件用readLine,根本就不匹配阿。

import java.io.*;
public class Hello{
public static void main(String[] args) throws IOException,FileNotFoundException{

File file=new File("count.txt");
String str="";

BufferedReader in=new BufferedReader(new FileReader(file));
                           str=in.readLine(); // here
                           in.close();
BufferedWriter out=new BufferedWriter(new FileWriter(file));

if(str == null)
{out.write("1");
 out.flush();
}
else
{int i=Integer.parseInt(str)+1;
 out.write(""+i); // this one
 out.flush();
}


out.close();
}
}

|
我觉得你原来的问题是由这个原因引起的:
当你用readLine()之后,该输入和输出流的当前点已经到了下一行,你再用write()方法写入的,只能是在下一行,而第一行还是null。所以你每次用readLine()得到的都是null。还有一点,就是netstarry(星光)说的write(i)的问题。
下面的做法可以解决你原来的问题,不过前提是count.txt文件已经存在:
import java.io.*;
public class Pass{
public static void main(String[] args) throws IOException,FileNotFoundException{

File file=new File("count.txt");
String str="";
BufferedWriter out=null;                   BufferedReader in=new BufferedReader(new FileReader(file));
if((str=in.readLine())==null)
{
                                      out = new BufferedWriter(new FileWriter(file));
                                      out.write("1");
 out.flush();
}
else
{int i = Integer.parseInt(str)+1;
                                      out = new BufferedWriter(new FileWriter(file));
 out.write(new Integer(i).toString());
 out.flush();
}

in.close();
out.close();
}
}

|
因为你的str=in.readLine())==null 每次都满足,所以每次都写1。只是我不明白,为什么每次读出的都是null。

    
 
 

您可能感兴趣的文章:

  • 如何解压光盘上的gz文件到某个目录?(Linux 超级菜鸟问题之一)
  • 菜鸟问题:怎样创建一个对所有文件只有只读权限的linux帐号,谢谢!
  • 显示文件路径问题(菜鸟送分)
  • 菜鸟提问,Redhat下如何挂载镜像文件?
  • 菜鸟问题: 请问如何创建一个文件来进行编程
  • 菜鸟问题: 在red hat 9下如何查看文件的源代码?
  • 菜鸟请问(Red Hat Linux)里面的用于开发窗口程序的头文件是什么,谢谢
  • 菜鸟请教:linux 直接执行可执行文件
  • 菜鸟问题:makefile文件怎么用?
  • 菜鸟问:文件能否能用/???
  • 菜鸟问:文件能否能用/??? iis7站长之家
  • 菜鸟问一个关于RedHat挂载windwos中ISO文件问题
  • 【菜鸟提问】我想查看一个文件夹下每一个子文件夹的大小用什么命令?谢谢~
  • 菜鸟问:怎么把java程序作成.exe文件??谢谢
  • 菜鸟问题:请教纯DOS下对子目录和文件的加密方法,简单的就可以。
  • 菜鸟问题:java中import导入的文件在哪里,可以看倒源代码吗?
  • 菜菜鸟问题!xml和xsl文件下载后怎么浏览啊
  • 小弟菜鸟一个如何将Graphics存为文件???
  • [菜鸟问题]gcc编译过后生成的文件
  • 菜鸟处女问!网卡配置文件各项的作用?
  • MyEclipse如何查看和设置文件编码格式相关操作
  • 在linux操作系统上向ftp服务器(linux系统)上上传文件,我要纪录操作日志,得到上传到ftp服务器上的文件的路径问题?
  • mount命令(linux操作系统)挂载卸载文件系统(cifs,光驱,nfs等)方法介绍
  • C#操作txt文件,进行清空添加操作的小例子
  • CentOS yum 源设置为163的源操作步骤及配置文件参考
  • 请问:如何让对多个现有的文件的写操作成为一个原子操作,并可以实现安全的回滚功能?
  • Linux下u盘文件系统相关操作
  • Python文件操作类操作实例详解
  • python读文件,写文件操作以及目录操作
  • 客户端如何操作服务器的文件(如查看文件列表,上传,下载)(★)
  • 什么操作系统能建立文件名大于256的文件
  •  
    本站(WWW.)旨在分享和传播互联网科技相关的资讯和技术,将尽最大努力为读者提供更好的信息聚合和浏览方式。
    本站(WWW.)站内文章除注明原创外,均为转载、整理或搜集自网络。欢迎任何形式的转载,转载请注明出处。












  • 相关文章推荐
  • 修改配置真正解决php文件上传大小限制问题(nginx+php)
  • 菜问题:请问如何根据文件中的一段内容查找文件路径和文件名称,在线等候
  • 修改配置真正解决php文件上传大小限制问题(apache+php)
  • shell脚本剪切文件文件,并生成新文件的问题
  • 文件编码及UTF-8、BOM、0XFEFF相关问题
  • GUI问题:如何使用文件选择对话框保存文本文件,图像文件??
  • Java读写包括中文的txt文件时不同编码格式问题解决
  • 不解,上传文件后压缩文件的中文文件名问题,转码也不管用?
  • cocos2d中CCSpriteFrameCache文件同时存在两个plist的问题解决
  • ext3文件系统问题:文件在硬盘上的物理位置,一组文件要据此排序。
  • jsp文件访问jar文件,路径问题。
  • Linux www服务 文件夹内文件数量问题
  • 一个奇怪的问题:Red Hat 7.2下用mv复制-粘贴文件变成了剪切-粘贴文件,用mv -b也不行。而两周前同样的机器却没有出现这种问题。alias中m
  • 请问unix下修改文件和文件夹读写权限的问题
  • 请教高手一个简单问题:给定一个文件名,如何去查找该文件正在被几个程序使用,并怎么样才可以切断这个文件与正在打开该文件的程序之间的
  • 关于在只读文件系统中,更新文件的问题
  • 高手请进:linux下使用.o文件,makefile文件的问题
  • 2个问题 急-共享文件夹和安装文件
  • 简单的问题,如何用命令 批量 删除某一目录下的 .o 文件?如何批量把只读文件改成可写文件?
  • 小问题, Unix 如何建立一个文件 ,unix 文件有后缀名吗
  • 文件夹或者文件权限问题?
  • C++ I/O 成员 eof():如果处于文件结尾处则返回true
  • Shell脚本如何递归现实一个文件夹中的文件(文件夹中含有文件夹)
  • WinDows8最新版文件夹加密
  • 求命令:什么命令可以把文件夹下所有的文件按修改时间先后排出来,包括子文件夹里的文件。
  • sharepoint 2010 使用STSNavigate函数实现文件下载举例
  • [提问]Linux下如何把多个.a文件编译一个.so文件,或者把多个.so文件编译成一个.so文件
  • python异常信息堆栈输出到日志文件
  • 请问:proc中的头文件中能包含头文件吗?(感觉如果头文件中包含头文件的话,在链接时就会有错误啊)
  • Centos6下安装Shell下文件上传下载rz,sz命令
  • 我要实现当进程打开文件时,根据文件名判断是否符合要求,符合后处理文件,再把文件返回给进程,怎么实现啊


  • 站内导航:


    特别声明:169IT网站部分信息来自互联网,如果侵犯您的权利,请及时告知,本站将立即删除!

    ©2012-2021,,E-mail:www_#163.com(请将#改为@)

    浙ICP备11055608号-3