黑马程序员技术交流社区

标题: 代码不知道哪里错了 [打印本页]

作者: 叶征东    时间: 2012-9-6 00:30
标题: 代码不知道哪里错了
本帖最后由 叶征东 于 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();
         }
}


作者: 杨千里    时间: 2012-9-6 00:37
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:52
本帖最后由 叶征东 于 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));



作者: 武庆东    时间: 2012-9-6 08:19
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 16:19
武庆东 发表于 2012-9-6 08:19
BufferedReader br=new BufferedReader(new FileReader("Chat10.java"));//代码可以通过编译,服务端Server ...

谢谢,
我把源带上了路径,就好了.
但是目的,我还是写成"Chat10_copy.java",我也不知道这个文件存到哪去了,搜索一下发现,文件在bin文件夹内.





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