java中FileInputStream的问题

everyx 发布于 2011/08/11 14:55
阅读 4K+
收藏 0

最近在补习java基础,在复习流的时候碰到一个问题,使用FileInputStream时必须使用java.io.FileInputStream才能编译通过,提示

FileInputStreamTest.java:10: 找不到符号
符号: 构造函数 FileInputStream(java.lang.String)
位置: 类 FileInputStream
			fin = new FileInputStream("./IOStream.java");
			      ^
FileInputStreamTest.java:18: 找不到符号
符号: 方法 read()
位置: 类 FileInputStream
			while ((b = fin.read()) != -1) {
			               ^
2 错误

在程序开始使用

import java.io.*;

后难道不能直接使用FileInputStream类了吗?

程序源代码如下

import java.io.*;

public class FileInputStreamTest {
	
	public static void main(String[] args) {
		//读取一个文件并显示出来
		
		FileInputStream fin = null;
		try {
			fin = new FileInputStream("./IOStream.java");
		//	fin = new FileInputStream("/home/everyx/新文件");		
		} catch (IOException e) {
			System.out.println("File not found");
		}
		
		int b = 0;
		try {
			while ((b = fin.read()) != -1) {
				System.out.print((char)b);
			}
		} catch (IOException e1) {
			;
		}
	}
}

只要将所有的FileInputStream替换为java.io.FileInputStream就能正确编译了,不知道什么原因。

java version "1.6.0_26"
Java(TM) SE Runtime Environment (build 1.6.0_26-b03)
Java HotSpot(TM) Client VM (build 20.1-b02, mixed mode, sharing)

java大一学的,大三了,好多都忘了,现在正在复习,基础不太好,大家帮帮忙,谢了。

 

加载中
0
everyx
everyx
谢谢大家了,找到原因了,原来我的当前目录下有个FileInputStream.class文件,真是的,谢谢大家啦。
0
鉴客
鉴客
你这段代码在我机器上完全没任何问题的
everyx
everyx
@鉴客 : 那我为什么编译没能通过呢?难道是人品?不至于吧,害我折腾了一天。
鉴客
鉴客
@罗光盛 : 你这代码看着就没问题啊,任何版本都OK的,必须的
everyx
everyx
请问,你的JDK版本是多少啊?
0
everyx
everyx

引用来自“鉴客”的答案

你这段代码在我机器上完全没任何问题的

不是吧,为什么我的就有问题呢?坑爹啊?这又是什么原因啊?

0
everyx
everyx

引用来自“罗光盛”的答案

引用来自“鉴客”的答案

你这段代码在我机器上完全没任何问题的

不是吧,为什么我的就有问题呢?坑爹啊?这又是什么原因啊?

0
l
licheng.c

如果不行的话,在你程序的上方添加这句代码:import  java.io.FileInputStream; 应该就可以了

0
黑仔-_-
黑仔-_-
会不会是自己也写了个 FileInputStream类
0
星星爷
星星爷
你这种情况应该是 你自己当前包中有一个名字叫  FileInputStream 的类
0
f
fzhq1970
很有可能是你的当前包中有一个名字也是 FileInputStream的类,编译器优先使用了你的类,而且你类没有提供带有字符串参数的构造方法,也没有read方法
返回顶部
顶部