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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 叶征东 中级黑马   /  2012-9-6 00:30  /  1847 人查看  /  4 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

本帖最后由 叶征东 于 2012-9-6 00:53 编辑

/*
通过网络复制一个文件
*/
import java.net.*;
import java.io.*;
class Client
{
         public static void main(String[] args)throws Exception
        {
              Socket s=new Socket("192.168.1.105",10006);
              BufferedReader br=new BufferedReader(new FileReader("Chat10.java"));//代码可以通过编译,服务端Server也可以开启.但是一开启客户端时,就提示找不到Chat10.java文件,
                                                                                                                      //但是Chat10.java文件就在当前目录下的(e:\javacx\23),不知道哪里错了,请指点我一下,谢谢!
              PrintWriter out=new PrintWriter(s.getOutputStream(),true);
              String line=null;
              while((line=br.readLine())!=null)
               {
                     out.println(line);
               }
               s.shutdownOutput();


               BufferedReader brIn=new BufferedReader(new InputStreamReader(s.getInputStream()));
               String line1=brIn.readLine();
               System.out.println(line1);


               s.close();
               br.close();
              System.out.println("Holle world");
         }
}
class Server
{
         public static void main(String[] args)throws Exception
         {
               ServerSocket ss=new ServerSocket(10006);
               Socket s=ss.accept();


               String ip=s.getInetAddress().getHostAddress();
               System.out.println(ip+"...connected");


               BufferedReader brOut=new BufferedReader(new InputStreamReader(s.getInputStream()));
               PrintWriter pw=new PrintWriter(new FileWriter("IPDmo4_copy.txt"),true);
               String line=null;
               while((line=brOut.readLine())!=null)
               {
                     pw.println(line);
               }


               PrintWriter out=new PrintWriter(s.getOutputStream(),true);
               out.println("上传成功");


               out.close();
               s.close();
               ss.close();
         }
}

评分

参与人数 1技术分 +1 收起 理由
刘芮铭 + 1 细节问题多注意一下

查看全部评分

4 个回复

倒序浏览
BufferedReader br=new BufferedReader(new FileReader("Chat10.java"));//代码可以通过编译,服务端Server也可以开启.但是一开启客户端时,就提示找不到Chat10.java文件,
                                                                                                                      //但是Chat10.java文件就在当前目录下的(e:\javacx\23),不知道哪里错了,请指点我一下,谢谢!

因为("Chat10.java")默认是在c盘下,你c盘里有这个文件吗?,把“Chat10.java”改成“e:\\javacx\\23”
路径错误,注意window下
“e:\javacx\23”这样是不行的 要改成“e:\\javacx\\23”
回复 使用道具 举报
本帖最后由 叶征东 于 2012-9-6 00:55 编辑
杨千里 发表于 2012-9-6 00:37
BufferedReader br=new BufferedReader(new FileReader("Chat10.java"));//代码可以通过编译,服务端Server ...

好了,谢谢.我是这样改的.

File f=new File("e:\\javacx\\23","Chat10.java");
BufferedReader br=new BufferedReader(new FileReader(f));


回复 使用道具 举报
BufferedReader br=new BufferedReader(new FileReader("Chat10.java"));//代码可以通过编译,服务端Server也可以开启.但是一开启客户端时,就提示找不到Chat10.java文件,
                                                                                                                      //但是Chat10.java文件就在当前目录下的(e:\javacx\23),不知道哪里错了,请指点我一下,谢谢!
解释:参考API文档
发现有两种方式
第一种:
public FileReader(File file)           throws FileNotFoundException在给定从中读取数据的 File 的情况下创建一个新 FileReader。
File(String pathname)
          通过将给定路径名字符串转换为抽象路径名来创建一个新 File 实例。
注意:这里要求是给定路径名字字符串转换为抽象路径"Chat10.java"显然不符合。new FileReader(file)参数要是一个File对象,不可以使用字符串

第二种:
public FileReader(String fileName)           throws FileNotFoundExceptionCreates a new FileReader, given the name of the file to read from.
fileName 要求是文件的来源,所以必须是绝对路径才可以!

回复 使用道具 举报
武庆东 发表于 2012-9-6 08:19
BufferedReader br=new BufferedReader(new FileReader("Chat10.java"));//代码可以通过编译,服务端Server ...

谢谢,
我把源带上了路径,就好了.
但是目的,我还是写成"Chat10_copy.java",我也不知道这个文件存到哪去了,搜索一下发现,文件在bin文件夹内.
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马