Topic: 帮忙看一个程序 (File Input/Output) |
Print this page |
1.帮忙看一个程序 (File Input/Output) | Copy to clipboard |
Posted by: bluedest Posted on: 2004-09-02 10:15 我有一个文件aaa.txt,里面存了一个串“123”, 我的意思是要先把它读出来,逐个加1,就是“234”, 把处理过的数据再写回原文件,代码如下: import java.io.*; public class Test { public static void main(String[] args) { try { BufferedInputStream fi=new BufferedInputStream(new FileInputStream("aaa.txt")); BufferedOutputStream fo=new BufferedOutputStream(new FileOutputStream("aaa.txt")); int i; while((i=fi.read())!=-1) fo.write((i+1)); fi.close(); fo.close(); } catch(Exception e) {e.printStackTrace();} } } 很奇怪的是写完以后aaa.txt里什么都没有了。 可是要是把输出的文件改为另一文件就没有问题 也既改成bbb.txt或ccc.txt都ok, 请问这是怎么回事? |
2.Re:帮忙看一个程序 [Re: bluedest] | Copy to clipboard |
Posted by: boper Posted on: 2004-09-02 10:21 可能你的文件正在被其它的程序使用,或者没有正确的关上它原来的reference |
3.Re:帮忙看一个程序 [Re: boper] | Copy to clipboard |
Posted by: bluedest Posted on: 2004-09-02 10:24 boper wrote: 应该不会,就是一个简单的.txt文件,而且是我随手建的一 个, 现在的问题是: 为什么把原文件内容读出来,就不能再写回原文件了? |
4.Re:帮忙看一个程序 [Re: bluedest] | Copy to clipboard |
Posted by: yung Posted on: 2004-09-02 14:19 文件句柄乱了!!这当然是不可以的!!! 正确流程如下: 打开文件(读)=〉读到数组中=>关闭源文件=>处理数组 =>打开文件(写)=〉写数组=〉关闭输出文件。 |
5.Re:帮忙看一个程序 [Re: bluedest] | Copy to clipboard |
Posted by: bluedest Posted on: 2004-09-02 14:53 可是为什么这样就不可以? 用了缓冲池了啊,直接在内存里处理完不行吗, 要是新建一个数组,操作也是在内存里,这两个有什么区别? |
6.Re:帮忙看一个程序 [Re: bluedest] | Copy to clipboard |
Posted by: littledeer1974 Posted on: 2004-09-02 16:37 不完全是你想要的,但是也许能给你点启发
|
7.Re:帮忙看一个程序 [Re: bluedest] | Copy to clipboard |
Posted by: bluedest Posted on: 2004-09-02 16:57 多谢各位 ! |
Powered by Jute Powerful Forum® Version Jute 1.5.6 Ent Copyright © 2002-2021 Cjsdn Team. All Righits Reserved. 闽ICP备05005120号-1 客服电话 18559299278 客服信箱 714923@qq.com 客服QQ 714923 |