黑马程序员技术交流社区
标题:
自己刚写了短代码,有错??不知道错在哪里,就帮助
[打印本页]
作者:
DMY2008
时间:
2013-5-14 16:53
标题:
自己刚写了短代码,有错??不知道错在哪里,就帮助
import java.io.*;
public class FileInputStream {
/**
* @param args
*/
public static void main(String[] args) {
try {
FileInputStream file= new FileInputStream("abc.txt");
while (file.available()>0)
{
System.out.print((char)file.read());
}
file.close();
} catch (Exception e)
{
System.out.println("not found file 404");
}
}
}
复制代码
作者:
钟林杰
时间:
2013-5-14 17:09
FileInputStream这个是java类库里面的一个类的类名,你不能再自己使用这个类名了,就像关键字一样,你不能用关键字作为类名。
你把类名修改了就好了。
作者:
$love
时间:
2013-5-14 17:12
FileInputStream file= new FileInputStream("abc.txt");
你的代码写的是没错的!至于为什么会报错,就是运行到上面这句代码的时候找不到abc.txt这个文本文件导致的
java.io.FileNotFoundException: abc.txt (系统找不到指定的文件。)
你可以指定一个绝对路径,或者把文本文件丢到jvm会默认找的文件夹里面
希望可以帮到你!!!!!!!!
作者:
ZhaoYuBetter
时间:
2013-5-14 17:13
你的程序是返回文件的内容是吗?如果是文本文件,可以用 FileReader 来读取,每次返回的是一个字符,如果您要用 InputStream 来读的话,System.out.print((char)file.read()); 这里就会有问题了。如果遇到的是中午,就可能乱码了。因为中文可能是多个字节组成的
修改一下:
/**
* 读入字节数组
*
* @throws IOException
*/
private static void readFile_2() throws IOException {
FileInputStream fis = new FileInputStream("fos.txt");
byte[] array = new byte[1024];
int len = 0; // 读取的字节长度
while ((len = fis.read(array)) != -1) {
System.out.println(new String(array, 0, len));
}
fis.close();
}
/**
* 一次读一个字节
*
* @throws IOException
*/
private static void readFile_1() throws IOException {
FileInputStream fis = new FileInputStream("fos.txt");
int ch = 0;
while ((ch = fis.read()) != -1) {
System.out.println((char) ch);
}
fis.close();
}
作者:
ZhaoYuBetter
时间:
2013-5-14 17:14
支持沙发,忘记看类名了
作者:
1844611785
时间:
2013-5-15 10:25
代码没错,就是路径的问题了
作者:
袁梦希
时间:
2013-5-18 12:48
如果问题已经解决了,那么大家请把帖子的类型改为“已解决”,在自己帖子的左下角点编辑,然后选择帖子的分类进行改正
。{:soso_e163:}
作者:
cowthan
时间:
2013-5-18 23:40
1、类名改改,不要叫FileInputStream
2、确定当前路径下有abc.txt
3、在我这里已经可以运行了,如果还是不能解决问题,楼主至少给出错误是什么啊,要不叫人怎么帮你看
作者:
张世威
时间:
2013-5-18 23:51
把报错的提示粘上来,就知道了。。。
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2