A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© ~与狼共舞~ 中级黑马   /  2013-5-27 22:11  /  1013 人查看  /  2 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

本帖最后由 ~与狼共舞~ 于 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. }
复制代码
为什么我的这段代码不能读取文件夹,是不是递归的地方出了问题,哪位大侠帮忙看看。

评分

参与人数 1技术分 +1 收起 理由
曹睿翔 + 1 神马都是浮云

查看全部评分

2 个回复

倒序浏览
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的值可是为空的啊;还得思量思量

评分

参与人数 1技术分 +1 收起 理由
袁梦希 + 1 赞一个!

查看全部评分

回复 使用道具 举报
如果问题已经解决,请把帖子的类型改为已经解决,如果不会解决请看我的个性签名。
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马