关于IO流的JAVA程序问题 执行时无响应

/*文件名ChangeNumber.java
*用处:将文本文件中的数字替换为英文单词,只对单个数字有效
*问题: 执行时无响应
**/
import java.io.*;
public class ChangeNumber{
public static void main(String[] args){
try{
String filebufs="";
//System.out.println("请输入文件名,我将把文件中的单个数字转换为对应的英文单词!");
//BufferedReader buf=new BufferedReader(new InputStreamReader(System.in));
//String filereadname=buf.readLine();
FileInputStream fileread=new FileInputStream("test.txt");
for(int i=fileread.read();i!=-1;fileread.read())
filebufs+=(char)i;//把文件的内容写入字符串filebufs中
FileWriter filewrite=new FileWriter("test.txt",true);
char[] filebuf=new char[filebufs.length()];
for(int i=0;i<filebuf.length;i++){
filebuf[i]=filebufs.charAt(i);
switch(filebuf[i]){
case '0': filewrite.write("zero");break;
case '1': filewrite.write("one");break;
case '2': filewrite.write("two");break;
case '3': filewrite.write("three");break;
case '4': filewrite.write("four");break;
case '5': filewrite.write("five");break;
case '6': filewrite.write("six");break;
case '7': filewrite.write("seven");break;
case '8': filewrite.write("eight");break;
case '9': filewrite.write("nine");break;
default: filewrite.write(filebuf[i]);
}
}
fileread.close();
filewrite.close();

}
catch(FileNotFoundException e){
System.out.println("文件不存在或其他原因!");
}
catch(Exception e){
e.printStackTrace();
}
}
}
还是我自己找到了原因
for(int i=fileread.read();i!=-1;fileread.read()) 少写个i
改成
for(int i=fileread.read();i!=-1;i=fileread.read())
哈哈
佩服下自己

第1个回答  2008-05-24
close之前要把流输出一下,调用一下filewrite的flush方法
相似回答