第第六讲六讲远程文件传输远程文件传输教学目标与要求:?了解远程文件传输的原理?了解文件读取/输出流的使用教学重点: ? FileInputStream/FileOutputStream 文件字节流读取/输出的使用教学难点: ?应用 Socket 进行远程文件传输 1 问题据我们所知,网络中两台计算机数据传输的原理是首先将要传送的数据写在输入/ 输出的通道口上,然后通过套接字(Socket) 将其传送到对方的计算机上,在现实生活中经常需要传送文件,文件又是如何传送的呢? 2 远程文件传输的原理文件在网络上的传输的原理跟数据传输的原理是一样的,其区别在于文件传输需要先通 FileInputStream/FileOutputStream 将文件流读取到一个字节数组里,字节数组里存放的是以字节为单位的数据,那么接下来就是数据传输问题。 3 FileInputStream/FileOutputStream 类? FileInputStream 类:提供了对文件读取字节流的操作。由于 InputStream,OutputStream 是针对字节流的,所以读取文件以前先要定义 byte[], 然后把文件流读取到 byte[] 里面。? FileOutputStream 类:文件输出字节流操作。?不管是 FileInputStream 还是 FileOutputStream ,流已经打开是不会自动关闭的,所以一定要使用手动关闭流。方法是 close(); 4 BufferedInputStream 作为另一种输入流, 添加了缓冲输入和支持 mark 和 reset 方法的能力。创建 BufferedInputStream 时即创建了一个内部缓冲区数组。读取或跳过流中的各字节时,必要时可根据所包含的输入流再次填充该内部缓冲区,一次填充多个字节。 mark 操作记录输入流中的某个点, reset 操作导致在从所包含的输入流中获取新的字节前,再次读取自最后一次 mark 操作以来所读取的所有字节。 5 //将文件的内容读到一个字节数组中 File f = new File("d:\\"); FileInputStream fis = new FileInputStream(f); BufferedInputStream bin=new BufferedInputStream(fis); byte[] b = new byte[(int)()]; (b); //将数组中内容写入文件中 File ff = new File("d:\\"); FileOutputStream fos = new FileOutputStream(ff); BufferedOutputStream bout=new BufferedOutputStream(fos); (b); 6 从文件中读取到数据如何送往线路? 客户端服务器 bout = new DataOutputStream( ())
第六讲 远程文件传输 来自淘豆网m.daumloan.com转载请标明出处.