黑马程序员技术交流社区

标题: 【已解决】关于main方法的参数的疑问 [打印本页]

作者: 周兴华    时间: 2012-9-3 20:10
标题: 【已解决】关于main方法的参数的疑问
本帖最后由 周兴华 于 2012-9-3 21:57 编辑

下面的代码是客户端上传图片的代码,对于main方法的String[] args参数不是很明白,懂的同学指导下我吧。

import java.io.*;
import java.net.*;
class  PicClient
{
public static void main(String[] args)throws Exception
{
  if(args.length!=1)
  {
   System.out.println("请选择一个jpg格式的图片");
   return ;
  }


File file = new File(args[0]);
  if(!(file.exists() && file.isFile()))
  {
   System.out.println("该文件有问题,要么补存在,要么不是文件");
   return ;
  }
  if(!file.getName().endsWith(".jpg"))
  {
   System.out.println("图片格式错误,请重新选择");
   return ;
  }
  if(file.length()>1024*1024*5)
  {
   System.out.println("文件过大,没安好心");
   return ;
  }
  

  Socket s = new Socket("192.168.1.254",10007);
  FileInputStream fis = new FileInputStream(file);
  OutputStream out = s.getOutputStream();
  byte[] buf = new byte[1024];
  int len = 0;
  while((len=fis.read(buf))!=-1)
  {
   out.write(buf,0,len);
  }
  //告诉服务端数据已写完
  s.shutdownOutput();
  InputStream in = s.getInputStream();
  byte[] bufIn = new byte[1024];
  int num = in.read(bufIn);
  System.out.println(new String(bufIn,0,num));
  fis.close();
  s.close();
}
}

作者: 孙沛    时间: 2012-9-3 20:16
本帖最后由 孙沛 于 2012-9-3 20:18 编辑

public static void main(String[] args) 中的String[] args 这个字符串数组是保存运行main函数时输入的参数的,例如你这个main函数所在的类名为PicClient   那么你在cmd运行   java   test   a   b    c   时,args[0]   =   a   ,args[1]=b,   args[2]=c     你就可以在你的程序中调用你输入的这些变量了。

File file = new File(args[0]); args[0]:这个参数是你电脑的某个文件或者文件夹的路径的字符串,意思是得到这个文件或者文件夹对象。
作者: 乔九    时间: 2012-9-3 21:13
String[] args显然是一个字符数组,可以用System.out.println(args)打印一下看看
作者: 王陶成    时间: 2012-9-3 21:21
String[] args 这个字符串数组中的参数除了在命令提示符窗口输入,在eclipse中也能输入,这个张老师视频有讲过
File file = new File(args[0]); args[0]:就是调用你给String[] args 传的第一个参数,也就是你将文件的路径传给String[] args ,然后再调用出来
作者: 周兴华    时间: 2012-9-3 21:56
孙沛 发表于 2012-9-3 20:16
public static void main(String[] args) 中的String[] args 这个字符串数组是保存运行main函数时输入的参 ...

谢谢,明白了




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