黑马程序员技术交流社区

标题: public修饰的类中我定义的流怎么不通过 [打印本页]

作者: 孔德智    时间: 2012-9-14 11:27
标题: public修饰的类中我定义的流怎么不通过
本帖最后由 孔德智 于 2012-9-14 12:15 编辑

import java.io.*;
public class Test
{
public static void main (String[]args)
{
  BufferedInputStream f1 = null;
  BufferedOutputStream f2 = null;  
}
}
为什么这个代码运行起来不通过,但把修饰的public去掉就可以通过了呢,我想让这段代码在有public也能通过,要怎么办


作者: 尤圣回    时间: 2012-9-14 11:29
在java工程里必须要有个public类 不然找不到入口
作者: 尤圣回    时间: 2012-9-14 11:29
在java工程里必须要有个public类 不然找不到入口
作者: 张 涛    时间: 2012-9-14 11:53
  1. import java.io.*;
  2. public class Test
  3. {
  4. public static void main (String[]args)
  5. {
  6.   BufferedInputStream f1 = null;
  7.   BufferedOutputStream f2 = null;  
  8. }
  9. }
复制代码
我这能通过啊
有public
作者: 黄敏    时间: 2012-9-14 11:54
看看你定义的类里面是不是已经有了public定义的
作者: 寇龙飞    时间: 2012-9-14 11:56
目测此java文件中还有另外一个权限是public修饰的类,去掉他的public,给你的Test类加上权限public就okay了。
作者: 王玉岩    时间: 2012-9-14 12:01
我这也有这个问题~~~不知道怎么回事 求解
作者: 孔德智    时间: 2012-9-14 12:02
寇龙飞 发表于 2012-9-14 11:56
目测此java文件中还有另外一个权限是public修饰的类,去掉他的public,给你的Test类加上权限public就okay了 ...

哥们,我就想让这一个类,通过编译,但是不好使呀
作者: 寇龙飞    时间: 2012-9-14 12:05
Demons 发表于 2012-9-14 12:01
我这也有这个问题~~~不知道怎么回事 求解

全部代码贴出来。


作者: 孔德智    时间: 2012-9-14 12:06
黄敏 发表于 2012-9-14 11:54
看看你定义的类里面是不是已经有了public定义的

没有,就这一块代码
作者: 孔德智    时间: 2012-9-14 12:06
张 涛 发表于 2012-9-14 11:53
我这能通过啊
有public

那我这边怎么不能呢,真不能
作者: 王玉岩    时间: 2012-9-14 12:07
import java.io.*;

public class CopyTest
{
        public static void main(String[] args)
        {
               
                BufferedReader bfr=null;
                BufferedWriter bfw=null;

                try
                {
                       
                        bfr=new BufferedReader(new FileReader("test.txt"));
                        bfw=new BufferedWriter(new FileWriter("copy.txt"));

                        String line=null;
                        while ((line=bfr.readLine())!=null)
                        {
                                bfw.write(line);
                                bfw.newLine();
                                bfw.flush();
                        }
                }
                catch (IOException e)
                {
                        throw new RuntimeException("读取失败");
                }
                finally
                {
                        try
                        {
                                if (bfr!=null)
                                {
                                        bfr.close();
                                }
                        }
                        catch (IOException e)
                        {
                                throw new RuntimeException("关闭失败");
                        }
                        try
                        {
                                if (bfw!=null)
                                {
                                        bfw.close();
                                }
                        }
                        catch (IOException e)
                        {
                                throw new RuntimeException("关闭失败");
                        }
                }
        }
}
作者: 孔德智    时间: 2012-9-14 12:11
Demons 发表于 2012-9-14 12:07
import java.io.*;

public class CopyTest

你也是在做基础测试吗?
作者: 王玉岩    时间: 2012-9-14 12:13
没有啊 我在做练习~~
作者: 黑马连家华    时间: 2012-9-14 12:13
只要你把这个java文件名
改成Test.java就行了

作者: 孔德智    时间: 2012-9-14 12:15
黑马连家华 发表于 2012-9-14 12:13
只要你把这个java文件名
改成Test.java就行了

好了,谢谢。。
作者: 黑马连家华    时间: 2012-9-14 12:17
黑马连家华 发表于 2012-9-14 12:13
只要你把这个java文件名
改成Test.java就行了

对了 虽说必须要有一个public 类,但是多个类中全无public类 JVM同样会找到main函数运行程序
所以 这个我无解 求指点
作者: 黑马连家华    时间: 2012-9-14 12:19
孔德智 发表于 2012-9-14 12:15
好了,谢谢。。

哥们儿 你够牛啊!技术分-2分
你都干啥了?

作者: 孔德智    时间: 2012-9-14 12:21
黑马连家华 发表于 2012-9-14 12:19
哥们儿 你够牛啊!技术分-2分
你都干啥了?

我在做基础测试,有个题不会,在坛子问了一个小问题,就被处理了
作者: 孔德智    时间: 2012-9-14 12:24
寇龙飞 发表于 2012-9-14 12:05
全部代码贴出来。

疑问解决了,文件名字不是Test,谢谢
作者: 王玉岩    时间: 2012-9-14 12:41
为什么读取的是test.txt不行,而改成而改成text.java就可以 这是为什么~~
作者: 孔德智    时间: 2012-9-14 13:29
Demons 发表于 2012-9-14 12:41
为什么读取的是test.txt不行,而改成而改成text.java就可以 这是为什么~~

java源文件的扩展名为.java,虚拟机编译时不识别.txt文件,它只认识.java文件
作者: 冯培军    时间: 2012-9-14 14:01
如果你用的IDE软件来写这个东西的话 ,例如Eclipse   默认是有public的  这个是他的入口....
但是你用记事本写这个程序是,可以不用public,javac  更上编译的文件即可...然后执行java   类名....
注意 :java的扩展名为 . java  ,编译后的文件名为 .class,如果你在class前面加上了public ,那么文件名必须和类名一样,即为Test.java, 我们执行javac时使用的是文件名,执行Java是main函数所在的类名。而且必须保证  .class文件在当前目录下,或者classpath设置的路径里 。




欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2