File file = new File("net-app\\src\\com\\itheima\\d10\\16-扩展案例-群聊.mp4"); System.out.println(file.length()); Scanner sc=new Scanner(System.in); String s = sc.nextLine(); //本地输入流 FileInputStream fileInputStream = new FileInputStream(file); BufferedInputStream bufferedInputStream = new BufferedInputStream(fileInputStream); //socket管道 Socket socket = new Socket("127.0.0.1",10086); Mythread mythread = new Mythread("子线程",socket,bufferedInputStream); //子线程开始执行 System.out.println("开始"); mythread.start();
时间: 2024-03-29 17:38:47 浏览: 85
这段代码使用了以下类和方法:
- File类的构造方法和length()方法,用于获取指定文件的大小;
- Scanner类的构造方法和nextLine()方法,用于从标准输入流中读取用户输入的字符串;
- FileInputStream类和BufferedInputStream类的构造方法,用于读取本地文件的输入流并进行缓冲操作;
- Socket类的构造方法,用于创建与指定IP地址和端口号的服务器建立的网络连接;
- Mythread类的构造方法和start()方法,用于创建并启动一个自定义的线程。
相关问题
File file = new File("D:\\HeimaIT\\OtherData\\lycode\\javaee\\net-app\\src\\com\\itheima\\d10\\16-扩展案例-群聊.mp4"); System.out.println(file.length()); Scanner sc=new Scanner(System.in); String s = sc.nextLine(); FileInputStream fileInputStream = new FileInputStream(file); BufferedInputStream bufferedInputStream = new BufferedInputStream(fileInputStream); Socket socket = new Socket("127.0.0.1",10086); OutputStream outputStream = socket.getOutputStream(); BufferedOutputStream bufferedOutputStream = new BufferedOutputStream(outputStream); byte[] bytes=new byte[1024*8]; int read; while ((read = bufferedInputStream.read(bytes))!=-1){ System.out.println(read); bufferedOutputStream.write(bytes,0,read); } bufferedInputStream.close(); bufferedOutputStream.close();
这是一个Java程序段,可以向IP地址为127.0.0.1,端口号为10086的Socket服务器发送一个名为“群聊.mp4”的文件。程序首先创建一个文件对象,然后获取文件的大小并打印出来。接着,程序创建一个Scanner对象获取用户的输入,然后使用文件输入流和缓冲输入流读取文件数据,并将文件数据写入到Socket的输出流中。程序使用一个byte数组缓存读取的数据,并使用一个while循环不断地将数据写入到Socket的输出流中,直到读取完整个文件。最后,程序关闭文件输入流、缓冲输入流和缓冲输出流。
ServerSocket serverSocket = new ServerSocket(10086); System.out.println("准备接受信号"); Socket accept = serverSocket.accept(); System.out.println("接收到"+accept.getRemoteSocketAddress()+"的信号"); InputStream inputStream = accept.getInputStream(); BufferedInputStream bufferedInputStream = new BufferedInputStream(inputStream); byte []brr=new byte[1024*8]; int read; File file = new File("net-app\\src\\com\\itheima\\d10brother\\ly.mp4"); BufferedOutputStream bufferedOutputStream = new BufferedOutputStream(new FileOutputStream(file)); while ((read=bufferedInputStream.read())!=-1){ System.out.println(read); bufferedOutputStream.write(brr,0,read); } System.out.println("复制完成");
这段代码是一个简单的网络文件传输的服务端代码。该代码通过创建一个ServerSocket对象来监听指定端口(10086),等待客户端的连接。一旦有客户端连接成功,就会通过accept()方法得到一个Socket对象,然后从Socket对象中获取InputStream,再通过BufferedInputStream包装一下,就可以读取客户端发送过来的数据了,这里是一个mp4文件的二进制流。然后再将读取到的二进制流写入到指定的文件中,最后输出“复制完成”表示文件传输完成。需要注意的是,这个代码只能传输小文件,如果传输的文件较大,则需要采用分段传输的方式,否则会发生内存溢出。
阅读全文