java.io.RandomAccessFile 中哪个方法可以向文件中写入中文?先谢了

我用了其中的writeUTF、writeChars。。。可是写入都是乱码。。。... 我用了其中的writeUTF、writeChars。。。可是写入都是乱码。。。 展开
 我来答
匿名用户
2013-08-28
展开全部
10 javac xxx.java顺利通过了,但是java xxx的时候显示什么"NoClassDefFoundErro
r"?br>

?br> 答:你遇到了classpath问题。java命令在一定的范围(classpath)内搜索你要用的 ,但是未能找到。
首先请确认你没有错敲成java xxx.class,
其次,检查你的CLASSPATH环境变量,如果你设置了该变量又没有包含.(代表当前目录
)的?br> 睿?br> 你就会遇到这个问题。请在你的CLASSPATH环境变量中加入一项. 。另
外参见15。

11 我在java xxx的时候显示"Exception in thread "main" java.lang.NoSuchMethod
Erro
r: main"。
答:首先,在你的程序中每个java文件有且只能有一个public类,
这个类的类名必须和文件名的大小写完全一样。
其次,在你要运行的类中有且只能有一个public static void main(String[] args)方
法,
这个方法就是你的主程序。

12 package是什么意思?怎么用?
答:为了唯一标识每个类并分组,java使用了package的概念。
每个类都有一个全名,例如String的全名是java.lang.String,其中java.lang是包名,
Stri
ng是短名。
这样,如果你也定义了String,你可以把它放在mypackage中,
通过使用全名mypackage.String和java.lang.String来区分这两个类。
同时,将逻辑上相关的类放在同一个包中,可以使程序结构更为清楚。

你要做的就是在java文件开头加一行"package mypackage;"。
注意包没有嵌套或包含关系,A包和A.B包对java命令来说是并列的两个包(虽然开发者
可能?br> 凳景?含关系)??br>
13 我没有声明任何package会怎么样?
答:你的类被认为放在默认包中。这时全名和短名是一致的。

14 在一个类中怎么使用其他类?
答:如果你使用java.lang包中的类,不用做任何事。
如果你使用其他包中的类,使用import package1.class1; 或 import package2.*;
这里.*表示引入这个包中的所有类。然后在程序中你可以使用其他类的短名。
如果短名有冲突,使用全名来区分。

15 我用了package的时候显示"NoClassDefFoundError",但是我把所有package去掉的时
候能
正常运行。
答:将你的java文件按包名存放。
比如你的工作目录是/work,你的类是package1.class1,那么将它存放为/work/package
1/cl
ass1.java。
如果没有声明包,那么直接放在/work下。
在/work下执行javac package1/class1.java,再执行java package1.class1,你会发现
一切
正常。
另外,你可以考虑开始使用IDE。

16 我想把java编译成exe文件,该怎么做?
答:JDK只能将java源文件编译为class文件。
class文件是一种跨平台的字节码,必须依赖平台相关的JRE来运行。Java以此来实现跨
平台?br> 浴?br> 有些开发工具可以将java文件编译为exe文件。作者反对这种做法,因
为这样就取消了跨平台
性。
如果你确信你的软件只在Windows平台上运行,你可以考虑使用C++/C#来编程。

17 我在编译的时候遇到什么"deprecated API",是什么意思?
答:所谓deprecated是指已经?时,但是为了向前兼容起见仍然保留的方法??br> 这些方
法可能会在以后取消支持。你应当改用较新的方法。
一般在API里面会说明你应当用什么方法来代替之。

三、I/O篇

18 我怎么给java程序加启动参数,就像dir /p/w那样?
答:还记得public static void main(String[] args)吗?这里的args就是你的启动参
数。
在运行时你输入java package1.class1 -arg1 -arg2,args中就会有两个String,一个
是arg
1,另一个是arg2。

19 我怎么从键盘输入一个int/double/字符串?

答:java的I/O操作比C++要复杂一点。如果要从键盘输入,样例代码如下:
BufferedReader cin = new BufferedReader( new InputStreamReader( System.in ) )
;
String s = cin.readLine();
这样你就获得了一个字符串,如果你需要数字的话再加上:
int n = Integer.parseInt( s ); 或者 double d = Double.parseDouble( s );

20 我怎么输出一个int/double/字符串?
答:在程序开始写:
PrintWriter cout = new PrintWriter( System.out );
需要时写:
cout.print(n); 或者cout.println("hello")等等。

21 我发现有些书上直接用System.in和System.out输入输出,比你要简单得多。
答:java使用unicode,是双字节。而System.in和System.out是单字节的stream。
如果你要输入输出双字节文字比如中文,请使用作者的做法。

22 我怎么从文件输入一个int/double/字符串?
答:类似于从键盘输入,只不过换成
BufferedReader fin = new BufferedReader( new FileReader(" myFileName " ) );
PrintWriter fout = new PrintWriter( new FileWriter(" myFileName " ) );
另外如果你还没下载API,请开始下载并阅读java.io包中的内容。

23 我想读写文件的指定位置,该怎么办?
答:你肯定没有认真看API。java.io.RandomAccessFile可以满足你的需要。

24 怎么判断要读的文件已经到了尽头?
答:你肯定没有认真看API。在Reaer的read方法中明确说明返回-1表示流的结尾。

四、 关键字篇

25 java里面怎么定义宏?
答:java不支持宏,因为宏代换不能保证类型安全。
如果你需要定义常量,可以将它定义为某个类的static final成员。参见26和30。

26 java里面没法用const。
答:你可以用final关键字。例如 final int m = 9。被声明为final的变量不能被再次
赋值?br> ?br> final也可以用于声明方法或类,被声明为final的方法或类不能被继承

注意const是java的保留字以备扩充。

27 java里面也不能用goto。
答:甚至在面向过程的语言中你也可以完全不用goto。请检查你的程序流程是否合理。
如果你需要从多层循环中迅速跳出,java增强了(和C++相比)break和continue的功能
,支?br> ?label。

例如:
outer :
while( ... )
{
inner :
for( ... )
{
... break inner; ...
... continue outer; ...
}
}
和const一样,goto也是java的保留字以备扩充。

28 java里面能不能重载操作符?
答:不能。String的+号是唯一一个内置的重载操作符。你可以通过定义接口和方法来实
现类
似功能。

29 我new了一个对象,但是没法delete掉它。
答:java有自动内存回收机制,即所谓Garbarge Collector。你再也不用担心指针错误
,内?br> 嬉绯隽恕?br>
30 我想知道为什么main方法必须被声明为public static?

static是为了将某个成员变量/方法关联到类(class)而非实例(instance)。

在A类中调用B类的static成员可以使用B.staticMember的写法。
注意一个类的static成员变
匿名用户
2013-08-28
展开全部
用 unicode 编码看看。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式