首页
论坛
图书
开发资料
在线文档
网址
下载
联系我们
 新闻│Java│JavaScript│Eclipse│Eclipse 英文│J2EE│J2ME│J2SE│JSP│Netbeans│Hibernate│JBuilder│Spring│Struts
站内搜索: 请输入搜索关键词

当前页面: 开发资料首页 → Java 专题 → 简易文件传送

简易文件传送

摘要: 简易文件传送

</td> </tr> <tr> <td height="35" valign="top" class="ArticleTeitle"> <table width="100%" border="0" cellspacing="0" cellpadding="0"> <tr> <td width="431" height="86" align="center" valign="top">

一、文件接收端
import java.net.*; import java.io.*; public class ReceiveFile { public static void main(String[] args) { BufferedReader user; int port; ServerSocket serverSkt; Socket clientSkt; BufferedReader fileInfo; BufferedInputStream fileReader; BufferedOutputStream fileWriter; String fileName; PrintStream printStream; try { user = new BufferedReader( new InputStreamReader(System.in)); System.out.println("简易文件接收v0.1版"); System.out.print("连接端口: "); port = Integer.parseInt(user.readLine()); System.out.println("将接收文件于端口: " + port); serverSkt = new ServerSocket(port); while(true) { System.out.println("倾听中...."); clientSkt = serverSkt.accept(); printStream = new PrintStream(clientSkt.getOutputStream()); fileInfo = new BufferedReader(new InputStreamReader(clientSkt.getInputStream())); fileName = fileInfo.readLine(); System.out.println("与" + clientSkt.getInetAddress() + "建立连接"); System.out.print("接收文件 " + fileName + " (yes/no) ? "); if(user.readLine().equals("no")) { printStream.println("no"); clientSkt.close(); } else { printStream.println("yes"); System.out.print("\nOK! 接收文件 " + fileName); fileReader = new BufferedInputStream(clientSkt.getInputStream()); fileWriter = new BufferedOutputStream( new FileOutputStream(fileName+"1")); int readin; while((readin = fileReader.read()) != -1) { //System.out.print("."); fileWriter.write(readin); } fileReader.close(); fileWriter.flush(); clientSkt.close(); System.out.println("\n文件接收完毕!"); } } } catch(IOException e) { System.out.println(e.toString()); } } }
运行界面:



C:\java>javac *.java
Note: Depth.java uses unchecked or unsafe operations.
Note: Recompile with -Xlint:unchecked for details.

C:\java>java ReceiveFile
简易文件接收v0.1版
连接端口: 2000
将接收文件于端口: 2000
倾听中....
与/127.0.0.1建立连接
接收文件 TransferFile.java (yes/no) ? yes

OK! 接收文件 TransferFile.java
文件接收完毕!
倾听中....

</td> <td width="253" valign="top"> </td> </tr> <tr> <td height="20" colspan="2">


</td> </tr> </table>

  二、文件发送端


import java.net.*;

import java.io.*;

public class TransferFile {

    public static void main(String[] args) {

        BufferedReader user;

        BufferedReader serverInfo;

        Socket skt;

        BufferedInputStream fileReader;

        String remoteHost;

        int port;

        String fileName;

        PrintStream printStream;

        try {

            user = new BufferedReader(

                    new InputStreamReader(System.in));

            System.out.println("简易档案传送v0.1版");

            System.out.print("远端主机: ");

            remoteHost = user.readLine();

            System.out.print("远端主机连接端口: ");

            port = Integer.parseInt(user.readLine());

            System.out.print("要传送的文件: ");

            fileName = user.readLine();

            System.out.println("尝试与 " + remoteHost + " 连接....");

            skt = new Socket(remoteHost, port);

            System.out.println("连接成功!尝试传送文件....");

            serverInfo = new BufferedReader(

                           new InputStreamReader(skt.getInputStream()));

            printStream = new PrintStream(skt.getOutputStream());

            printStream.println(fileName);

            if(serverInfo.readLine().equals("no")) {

                System.out.println("对方拒接接收文件!");

                System.exit(0);

            }

            System.out.print("OK! 传送文件....");

            fileReader = new BufferedInputStream(

                             new FileInputStream(fileName));

            int readFile;

            while((readFile = fileReader.read()) != -1) {

                 //System.out.print(".");

                 printStream.write(readFile);

            }

            fileReader.close();

            printStream.flush();

            skt.close();

            System.out.println("\n文件传送文件!");

        }

        catch(UnknownHostException e) {

            System.out.println(e.toString());

        }

        catch(IOException e) {

            System.out.println(e.toString());

        }

    }

}

程序运行界面:


C:\java>java TransferFile
简易档案传送v0.1版
远端主机: 127.0.0.1
远端主机连接端口: 2000
要传送的文件: TransferFile.java
尝试与 127.0.0.1 连接....
连接成功!尝试传送文件....
OK! 传送文件....
文件传送文件!

C:\java>


</td> </tr> <tr>


↑返回目录
前一篇: 深入浅出Java设计模式之迭代器模式
后一篇: AbstractList源码分析

首页 | 全站 Sitemap | 联系我们 | 设为首页 | 收藏本站
版权所有 Copyright © 2006-2007, Java 编程资料牛鼻站, All rights reserved