一个书上的习题

fantasyfans2 2010-01-03 01:28:06
编写一个程序,每次从文本文件中读取多行字符,并将这些行字符以UTF-8字符串的格式写到二进制文件中,显示文本文件和二进制文件的大小。使用下列语句运行该程序:
java Exercise18_4 Welcome.java Welcome.utf

题目大概意思我懂,但我不知道.utf结尾的文件是什么。。。难道不应该是存到.dat文件中么。。
下面是书附的答案:
import java.io.*;

public class Exercise16_10 {
public static void main(String[] args) throws IOException {
BufferedReader input = new BufferedReader(new FileReader(args[0]));
DataOutputStream output = new DataOutputStream(new FileOutputStream(args[1]));

String line;
while ((line = input.readLine()) != null)
output.writeUTF(line);

input.close();
output.close();

InputStream input1 = new FileInputStream(args[0]);
System.out.println(args[0] + "'s size is " + input1.available() + " bytes");
input1 = new FileInputStream(args[1]);
System.out.println(args[1] + "'s size is " + input1.available() + " bytes");

input1.close();
}
}
但我运行了没用,说找不到类文件一大堆的。。
求高手指点,另附代码就更好了,谢谢。
...全文
198 8 打赏 收藏 转发到动态 举报
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
classic2008olympic 2010-01-03
  • 打赏
  • 举报
回复
D:\java>java Exe Hello.java Hello.utf
Hello.java's size is 1102 bytes
Hello.utf's size is 1102 bytes
这是我运行的最后结果。
classic2008olympic 2010-01-03
  • 打赏
  • 举报
回复
[Quote=引用 1 楼 ll0long 的回复:]
上面的代码没有问题,应该是你理解偏差了
你在源码路径下放置一个叫Welcome.java 的文件,
然后执行下面的指令
java Exercise16_10 Welcome.java Welcome.utf
[/Quote]
支持!!!说得完全正确。
args[0]接收的是Welcome.java
args[1]接收的是Welcome.utf
大家可以去看下C语言上就说到关于args接收参数的问题
遇到空格就会分隔
跟着Mic学架构 2010-01-03
  • 打赏
  • 举报
回复
学习。。
downice 2010-01-03
  • 打赏
  • 举报
回复
楼主。。。你用windows多久了。。。。你的脑袋已经被MS给XXOO了。。。
我的电脑上有很多。。。。.JWH .WAR3 .ICE文件,你没见过吧。。。。。

在我电脑上 凡是 .jwh结尾的。。。都是ANSI的编码文档 .WAR3呢。。。是UCS-2的。。。.ICE是UTF-8的。。。。当然还有其他很多没有结尾的。。。。
东大坡居士 2010-01-03
  • 打赏
  • 举报
回复
java Exercise18_4 Welcome.java Welcome.utf

这句是什么意思?

是编译吧?

按照这个命令来算,arg[0]应该是"java"
999朵玫瑰 2010-01-03
  • 打赏
  • 举报
回复
Exercise16
py330316117 2010-01-03
  • 打赏
  • 举报
回复
[Quote=引用 1 楼 ll0long 的回复:]
上面的代码没有问题,应该是你理解偏差了
你在源码路径下放置一个叫Welcome.java 的文件,
然后执行下面的指令
java Exercise16_10 Welcome.java Welcome.utf
[/Quote]
你看明白了吗,上面那叫没有问题?
BufferedReader input = new BufferedReader(new FileReader(args[0]));
有缓冲的时候你不的先用一个输出流,在把输入流写入换成啊,像你这么写能行吗new FileReader(args[0])你的参数根本没赋值,要么你创建个file对象,然后用filereader读出,要么你设一个string对象,用getbytes得到byte对象赋值给filereader,像你这样用main的参数是不行的,因为你输入的是string类型,但是filereader输出的是byte类型
张祥龙 2010-01-03
  • 打赏
  • 举报
回复
上面的代码没有问题,应该是你理解偏差了
你在源码路径下放置一个叫Welcome.java 的文件,
然后执行下面的指令
java Exercise16_10 Welcome.java Welcome.utf

62,621

社区成员

发帖
与我相关
我的任务
社区描述
Java 2 Standard Edition
社区管理员
  • Java SE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧