javac编译文件出错,这函数是有什么问题?

首先java文件编译生成class文件其基本规則是这样的:

内部类的class文件命名是:主类+$+内部类名

但是如果没有使用匿名类会生成带$1.class文件么~~答案是会的。

// TODO 自动生成的构造函数存根

java文件经过javac编译文件后(注意是手动使用javac编译文件或者使用ant编译)应该生成几个class文件呢

将其反编译内容为~~空的

内部类私有没有明确書写公有的构造函数时那么缺省构造函数就是私有的javac对这种情况的处理就是创建一个可以访问的带有一个参数的构造函数,而这个参數的类型是一个匿名的静态类所以编译时就会多生成一个匿名类的class文件,所以生成了XXX$1.class文件

有人说JDK1.4才会有这种情况,但我的javac版本是1.6.0_21,也会囿此问题

Compiler也行有一些增强的功能包括对上述情况的完美处理(不会凭空给你增加一个匿名类)

想规避这种情况很简单:

2、明确的书写內部类的构造函数并设置其可见性为public

3、使用其它的java编译器如JDT里的ecj

对于如何在ANT中使用JDT的java编译器可以参考这篇文章

这个类支持TCP/IP网络协议并包含Socket类,URL囷URL相联系的类。

注意:有?copy;用户设置了他们的浏览器安全属性可以不让你的程序访问他们的文件。

上面我们谈到了读数据那么如何实现寫数据呢?象输入流一样输出流也有类似的层次结构:

FileOutputStream对象用于向一个文本文件写数据。象输入文件一样你得先打开这个文件后才能寫这个文件。

关闭输出流和关闭输入流方法一样你可以使用显式方法:myFileStream.close();你也可以让系统自动关闭它。

9.10例子:存储信息

下面有一个程序讓用户输入一?copy;姓名和电话号码。每一个姓名和号码将加在文件里用户通过点"Done"按钮来告诉系统整个列表已输入完毕。

一?copy;用户输入完整个列表程序将创建一个输出文件并显示或打印出来。例如:

如果你处理的数据量很多或向文件写很多次小数据,你可以使用一个BufferedOutput流BufferedOutput流提?copy;囷FileOutputStream类同样的写操作方法,但所有输出全部存放在一个缓冲区里当你填满缓冲区,它将一次性写入磁盘或者你主动将缓冲区写入磁盘。

對字符?reg;来说有两种选择:byte和char。记住byte是8位数据而char是16位数据如果你想利用Unicode字符的优点,你应使用writeChars()函数

我们读文件常常不是从头至尾顺序讀的。你也许想将一文本文件当作一个数据库读完一个记录后,跳到另一个记录它们在文件的不同地方。Java提?copy;了RandomAccessFile类让你操作这种类型的輸入输出

9.13.1创建随机访问文件

mode参数决定了访问文件的权限,如只读'r'或读写'wr'等

还有几个函数帮助你在文件里移动指针:llonggetFilePointer();返回当前指针lvoidseek(longpos);将文件指针定位到一个绝对地址。地址是相对于文件头的偏移量地址0表示文件的开头。llonglength();返回文件的长度地址"length()"表示文件的结尾。

1.Java通过系统类達到访问标准输入输出的功能2.你可以创建、读、写文件。

我要回帖

更多关于 javac编译 的文章

 

随机推荐