JAVA语言分析题

来源:百度知道 编辑:UC知道 时间:2024/09/28 08:21:32
分析题(20分)
利用下面的代码回答接下来的两个问题:
public static void main(String args[])
{
if(args.length!=1)
{
System.err.println(“Usage:java Main1<file>”);
System.exit(-1);
}
try
{
FileInputStream in=new FileInputStream(args[0]);
BufferedInputStream bufin=new BufferedInputStream(in,1024);
int count,half=bufin.available()/2;
bufin.skip(half);
byte[]buf=new byte[1024];
while((count=bufin.read(buf,0,buf.length))>0)
for(int i=;i<count;i++)
System.out.flush();
Bufin.close();
}
catch(IOException e)
{
e.printStackTrace();
}
}
a) 写出程序功能;
b) 若输入java Main1 c:\apple\myfile.java,其中文件c:\apple\myfile.java的内容为“I am a student!”

这个程序的功能如下:
运行时,接收Java 程序名 后跟着的文件名(源文件),利用定义的bufin读取源文件中的N字节(设定读取1024/2个)到定义的buf字节数组中。
if(args.length!=1){……}的功能是要求Java 程序名 后只能跟一个字符串,否则退出。
此程序大概这么回事,不过有很多特别绕的地方:例如
int count,half=bufin.available()/2;
bufin.skip(half);
这两个地方我也不太明白。

两个问题都在注释中写的很清楚了,自己看~~

import java.io.BufferedInputStream;
import java.io.FileInputStream;
import java.io.IOException;

public class Test {

public static void main(String args[])
{
//异常处理,当传入main函数的参数不是一个的话,那么就会抛出该异常
if(args.length!=1)
{
System.err.println("Usage:java Main1<file>");
System.exit(-1);
}
try
{
//创建输入流,args[0]应该是一个完整的文件路径名称,如果输入错误的话会抛出“系统找不到该文件”的错误
FileInputStream in=new FileInputStream(args[0]);

//创建字符串流,最大是1024字节
BufferedInputStream bufin=new BufferedInputStream(in,10