黑马程序员技术交流社区

标题: 关于TCP的问题 [打印本页]

作者: ~与狼共舞~    时间: 2013-5-27 22:11
标题: 关于TCP的问题
本帖最后由 ~与狼共舞~ 于 2013-5-30 18:07 编辑
  1. import java.io.*;
  2. import java.net.Socket;
  3. import java.util.Scanner;

  4. public class Demo3 {
  5.         
  6.         public static void main(String[] args) throws Exception {
  7.                 File file = getFile();
  8.                 Socket socket = new Socket("192.168.1.133",52614);
  9.                 BufferedReader br = new BufferedReader(new InputStreamReader(socket.getInputStream()));
  10.                 PrintStream ps = new PrintStream(socket.getOutputStream());
  11.                 ps.println(file.getName());
  12.                 String s = br.readLine();
  13.                         if("已存在".equals(s)){
  14.                                 System.out.println("您要上传的文件已存在");
  15.                                 return;
  16.                         }else{
  17.                                 FileInputStream fis = new FileInputStream(file);
  18.                                 OutputStream os = socket.getOutputStream();
  19.                                 byte[] buffer = new byte[1024];
  20.                                 int len;
  21.                                 while ((len = fis.read(buffer)) != -1)
  22.                                         os.write(buffer, 0, len);
  23.                                 fis.close();
  24.                                 socket.close();
  25.                         }
  26.         }

  27.         private static File getFile() {
  28.                 Scanner sc = new Scanner(System.in);
  29.                 System.out.println("请输入文件夹路径:");
  30.                 while (true) {
  31.                         File file = new File(sc.nextLine());
  32.                         if (!file.exists()) {
  33.                                 System.out.println("您输入的文件夹路径不存在");
  34.                         }else if (file.isDirectory()) {
  35.                                 show(file);
  36.                                 
  37.                         } else {
  38.                                 return file;
  39.                         }
  40.                 }

  41.         }

  42.         private static void show(File file) {
  43.                 file.listFiles();
  44.                 for (File f : file.listFiles()) {
  45.                         if (f.isFile()) {
  46.                                 return;
  47.                         } else if(f.isDirectory()){
  48.                                 show(f);
  49.                                 return;
  50.                                 }
  51.                         
  52.                 }

  53.         }

  54. }
复制代码
  1. import java.io.*;
  2. import java.net.ServerSocket;
  3. import java.net.Socket;

  4. public class Demo4 {

  5.         public static void main(String[] args) throws Exception {
  6.                 ServerSocket ss = new ServerSocket(52614);
  7.                 while (true) {
  8.                         final Socket socket = ss.accept();
  9.                         new Thread() {
  10.                                 public void run() {
  11.                                         try {BufferedReader br = new BufferedReader(new InputStreamReader(socket.getInputStream()));
  12.                                         PrintStream ps = new PrintStream(socket.getOutputStream());                                                
  13.                                         String name = br.readLine();
  14.                                         File file = new File("F:\\辅助",name);
  15.                                         if(file.exists()){
  16.                                                 ps.println("已存在");
  17.                                                 return;
  18.                                         }else{
  19.                                                 ps.println("不存在");
  20.                                         }
  21.                                         InputStream is = socket.getInputStream();
  22.                                         FileOutputStream fos = new FileOutputStream(file,true);
  23.                                         byte[] buffer = new byte[1024];
  24.                                         int len;
  25.                                         while ((len = is.read(buffer)) != -1)
  26.                                                 fos.write(buffer, 0, len);
  27.                                         fos.close();
  28.                                         socket.close();
  29.                                         }catch(Exception e){
  30.                                                 
  31.                                         }
  32.                                 };
  33.                         }.start();

  34.                 }
  35.         }
  36. }
复制代码
为什么我的这段代码不能读取文件夹,是不是递归的地方出了问题,哪位大侠帮忙看看。
作者: tshch1989    时间: 2013-5-27 23:07
private static void show(File file) {
                file.listFiles();
                for (File f : file.listFiles()) {
                        if (f.isFile()) {
                                return;
                        } else if(f.isDirectory()){
                                show(f);
                                return;
                                }
                        
                }
return 语句都没有返回文件啊;那啥程序功能不明啊;你程序要是碰到一个目录下没有文件全是目录文件的话,file的值可是为空的啊;还得思量思量
作者: 袁梦希    时间: 2013-5-29 16:58
如果问题已经解决,请把帖子的类型改为已经解决,如果不会解决请看我的个性签名。




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