第六讲远程文件传输.pptVIP

  • 5
  • 0
  • 约2.53千字
  • 约 10页
  • 2018-06-09 发布于山西
  • 举报
第六讲远程文件传输

第 六讲 远程文件传输 教学目标与要求: 了解远程文件传输的原理 了解文件读取/输出流的使用 教学重点: FileInputStream/FileOutputStream文件字节流读取/输出的使用 教学难点: 应用Socket进行远程文件传输 5.1问题 据我们所知,网络中两台计算机数据传输的原理是首先将要传送的数据写在输入/输出的通道口上,然后通过套接字(Socket)将其传送到对方的计算机上, 在现实生活中经常需要传送文件, 文件又是如何传送的呢? 5.2 远程文件传输的原理 文件在网络上的传输的原理跟数据传输的原理是一样的,其区别在于文件传输需要先通FileInputStream/FileOutputStream将文件流读取到一个字节数组里,字节数组里存放的是以字节为单位的数据,那么接下来就是数据传输问题。 5.3 FileInputStream/FileOutputStream类 FileInputStream 类:提供了对文件读取字节流的操作。由于InputStream,OutputStream是针对字节流的,所以读取文件以前先要定义byte[],然后把文件流读取到byte[]里面。 FileOutputStream类:文件输出字节流操作。 不管是FileInputStream还是FileOutputStream,流已经打开是不会自动关闭的,所以一定要使用手动关闭流。方法是close(); BufferedInputStream作为另一种输入流, 添加了缓冲输入和支持 mark 和 reset 方法的能力。 创建BufferedInputStream 时即创建了一个内部缓冲区数组。读取或跳过流中的各字节时,必要时可根据所包含的输入流再次填充该内部缓冲区,一次填充多个字节。mark 操作记录输入流中的某个点,reset 操作导致在从所包含的输入流中获取新的字节前,再次读取自最后一次 mark 操作以来所读取的所有字节。 //将文件的内容读到一个字节数组中 File f = new File(d:\\ss.txt); FileInputStream fis = new FileInputStream(f); BufferedInputStream bin=new BufferedInputStream(fis); byte[] b = new byte[(int)f.length()]; bin.read(b); //将数组中内容写入文件中 File ff = new File(d:\\yang.txt); FileOutputStream fos = new FileOutputStream(ff); BufferedOutputStream bout=new BufferedOutputStream(fos); bout.write(b); 5.3.1 从文件中读取到数据如何送往线路? 5.3.2 线路上的数据如何读取写到文件中去? 5.5文件选择器(JFileChooser) 当我们要发送本地机上某个文件时,这时需要应用文件选择器找到该文件所在的路径并将其选中,然后再发送出去。文件选择器的创建如下: JFileChooser fc = new JFileChooser(); 使用showOpenDialong()出现一个打开文件对话框,其参数表示的是该文件对话框打开时依赖某个窗口,当该窗口关闭,则文件对话框也随之关闭。 int returnVal = fc.showOpenDialog(frame); 使用 showSaveDialog()出现一个保存文件的对话框 int returnVal = fc.showSaveDialog(frame); 使用getSelectedFile()选中某个文件,假若要获取该文件名,则使用该文件的对象调用getName()来获取 比如: if (returnVal == JFileChooser.APPROVE_OPTION) { File file = fc.getSelectedFile(); text.append(Opening: + file.getName()); 举个应用示例:FileChooserDemo.java * * 客户端 服务器 bout = new DataOutputStream(

文档评论(0)

1亿VIP精品文档

相关文档