Process process = Runtime.getRuntime().exec("ftp 192.168.10.1");
PrintStream in = process.getInputStream(); //输入流
InputStream out = new PrintStream(process.getOutputStream());//输出流readUntil("User (192.168.10.1:(none)):");//登录
write("bea\n");
//读取分析结果
 public String readUntil(String pattern) {
try {
StringBuffer stringBuffer = new StringBuffer();
BufferedReader bufferReader = new BufferedReader(new InputStreamReader(in));
int ch= bufferReader.read();
while (true) {
stringBuffer.append((char)ch);
System.out.println((char)ch+ " "+ch);
if (ch == -1) {
if (stringBuffer.toString().endsWith(pattern)) {//判断字符串是不是以指定文字作为结束
System.out.print(stringBuffer.toString());
return stringBuffer.toString();
}else{
return "error";
}
}
ch= bufferReader.read();
}
} catch (Exception e) {
e.printStackTrace();
}
return null;
 }  public void write(String value) {
  try {
  System.out.println("打印:"+value);
  out.print(value);
  out.flush();
  } catch (Exception e) {
  e.printStackTrace();
  }
 }我这样写的目的是想通过程序与FTP壳交互。不知道可行不,
另外if (ch == -1) {
//为什么ch总是得不到-1呢?
}

解决方案 »

  1.   


    public static void main(String arg[])throws IOException{InputStreamReader isr = new InputStreamReader(System.in);
    BufferedReader br = new BufferedReader(isr);
    int c;do{String s = br.readLine();System.out.println(s);}while(c = br.read()!=-1);}}
      

  2.   

    http://topic.csdn.net/u/20100917/11/9bb134ea-99cb-482b-a726-6c5f9df0bc40.html
      

  3.   

    BufferedReader bufferReader = new BufferedReader(new InputStreamReader(inputStream));
    System.out.println("AAAAAAAAAAAAAA:"+bufferReader.readLine());//为什么一读到这就没任何反应了呢