第十三章 網路檔案傳遞(File Transition)

Slides:



Advertisements
Similar presentations
软件编程基础 一、程序的编辑 Java 源程序是以 Java 为后缀的简单的文本文件,可以用各种 Java 集成开发环境中的源代码编辑器来编写,也可以用其他文 本编辑工具,如 Windows 中的记事本或 DOS 中的 EDIT 软件等。 利用文字编辑器编写下列程序 public class Hello.
Advertisements

Java 程序分类 Java Application :是完整程序,需要独立的解 释器解释运行;以 “.java” 为后缀的文件,以 main() 方法作为程序入口,由 java 编译器编译生 成字节码,由 Java 解释器加载执行字节码。 Java Applet 没有 main() 方法作为程序入口,是嵌在.
多元評量與 Greenfoot 簡介 南港高中高慧君. 演講大綱 多元評量 高中階段程式設計教學目標與困境 Greenfoot 快速入門 – 袋熊吃樹葉 – 沙灘螃蟹 Greenfoot 臺灣社群介紹 2.
第四章 类、对象和接口.
第三讲 面向对象(上).
3.2 Java的类 Java 类库的概念 语言规则——程序的书写规范 Java语言 类库——已有的有特定功能的Java程序模块
第一單元 建立java 程式.
项目6 通用堆栈.
《 Java开发环境配置》 主讲人:耿力.
Java 2实用教程(第3版)教学课件 主讲教师:张国平
檔案處理.
Java程序设计教程 第一讲 Java概述.
四資二甲 第三週作業 物件導向程式設計.
第17章 网络编程实例——局域网通信软件 Java语言具有非常强大的网络应用开发能力。本章通过实现一个简单的局域网通信软件,展示了Java语言网络编程知识在实际系统开发过程中的具体应用。本章实例主要涉及以下知识点。 Java网络编程知识; Java图形界面编程知识。 通过学习本章实例,读者需要重点掌握Java语言网络编程知识的具体应用。
第五章 字符串.
第二十章 圖型介面與網路對播 (GUI and Intercross Transition) 20-1 簡介 20-2 ActionListener Interface 20-3 ActionEvent Class 20-4 Vector Class 20-5 圖型介面與視窗關閉 20-6 圖型介面與資料顯示.
第十五章 网络编程.
第二章 JAVA语言基础.
Ch07 介面與多重繼承 物件導向程式設計(II).
创意源自激情,技术成就梦想 畅翼创新俱乐部 2012年春俱乐部第三次技术培训 赵程.
JAVA程序设计 (03) JAVA Programming
程式設計實作.
第5章 异常处理 王德俊 上海交通大学继续教育学院.
第5章 面向对象程序设计 本章要点 5.1 面向对象程序设计概述 5.2 Java语言的面向对象程序设计 5.3 方法的使用和对象数组
Java语言程序设计 清华大学出版社 第9章 网络通信.
例外處理(Exception Handling)
Java基础 JavaSE异常.
程序與函數的類別方法 目的:模組化程式設計 方法:由上而下設計 注意事項:(1)獨立性 (2)結合問題 (3)子問題間的溝通.
JAVA 程式設計與資料結構 第六章 輸出與輸入.
JAVA 编 程 技 术 主编 贾振华 2010年1月.
西南科技大学网络教育系列课程 高级语程序设计(Java) 第五章 继承、接口与范型.
程式設計實作.
第四章 基本輸出入 Java應用程式的輸出入介面有三種,分別是命令提示字元視窗、AWT元件、及Swing元件。本單元先介紹命令提示字元視窗,AWT請看第16、17章,Swing請看第20章。 輸入 輸出.
西南科技大学网络教育系列课程 高级语程序设计(Java) 第十一章 Java 中的网络编程.
2018/12/3 面向对象与多线程综合实验-网络编程 教师:段鹏飞.
Java语言程序设计 第五部分 Java异常处理.
Java程序设计 第9章 继承和多态.
王豐緒 銘傳大學資訊工程學系 問題:JAVA 物件檔輸出入.
中国矿大计算机学院杨东平 第5章 接口和包 中国矿大计算机学院杨东平
Echo Server/Client Speaker:Fang.
實作輔導 3 日期: 4/14(星期六) 09:10~12:00、13:10~16:00
第9讲 Java的继承与多态(一) 类的继承 子类的创建 方法覆盖.
Chapter 11:Java网络编程 授课教师:赵小敏 浙江工业大学 软件学院
异常及处理.
第一章 Java语言概述.
4、按钮事件.
Ch02-基礎語法.
C/C++/Java 哪些值不是头等程序对象
* 單元:電腦與問題解決 主題:Java物件導向程式設計-類別與物件 台南縣國立善化高中 蕭嘉民 老師
4.2通讯服务模块线程之间传递信息 信息工程系 向模军 Tel: QQ:
辅导课程八.
JAVA 编 程 技 术 主编 贾振华 2010年1月.
第二章Java基本程序设计.
網際網路與電腦應用 林偉川 2001/10/18.
Java程式初體驗大綱 大綱 在學程式之前及本書常用名詞解釋 Hello Java!程式 在Dos下編譯、執行程式
第二章 基于CORBA的分布式平台 苗启广 计算机学院.
主编:钟元生 赵圣鲁.
2019/5/3 JAVA Socket(UDP).
第二章 Java基本语法 讲师:复凡.
龍老師我不會Debug QQ.
第6章 面向对象的高级特征 学习目标 本章要点 上机练习 习 题.
辅导课程十二.
助教:廖啟盛 JAVA Socket(UDP) 助教:廖啟盛
JAVA 程式設計與資料結構 第三章 物件的設計.
判斷(選擇性敘述) if if else else if 條件運算子.
第十二章 Java网络编程 1.URL编程 2.Socket网络编程 3.Datagram网络编程.
輸出執行結果到螢幕上 如果要將執行結果的文字和數值都「輸出」到電腦螢幕時,程式要怎麼寫? class 類別名稱 {
第二章 Java基本语法 讲师:复凡.
Summary
InputStreamReader Console Scanner
Presentation transcript:

第十三章 網路檔案傳遞(File Transition)   13-1 簡介 13-2 FileInputStream Class 13-3 FileOutputStream Class 13-4 檔案傳遞(File Translation) 13-5 檔案上傳(File Upload) 13-6 檔案下載(File Download) 13-7 習題(Exercises)

13-1 簡介   前章網路訊息傳遞,是為小宗串流傳遞,本章將介紹網路檔案傳遞,是為大宗串流傳遞。除了要使用網路資料串流外,另外要使用本機當地資料串流,讀取檔案內的資料、或將資料寫入檔案。

13-2 FileInputStream Class   java.io.FileInputStream繼承(extends) 自InputStream→Object,此類別從檔案建立一個低階輸入串流,使用其中之方法程序讀取檔案內容。

13-3 FileOutputStream Class java.io.FileOutputStream繼承(extends) 自OutputStream→Object,此類別建立一個低階輸出串流,使用其中之方法程序將串流內容寫入指定檔案。

13-4 檔案傳遞(File Translation)   設計範例130,於Client端讀取特定檔案的內容,再由網路將內容傳送到Server端之特定檔案內。

範例130:設有檔案Server13_4.java、Client13_4.java其功能為解釋檔案傳遞之應用。   檔案Server13_4.java: 01 import java.net.*; 02 import java.io.*; 03 public class Server13_4 { 04 int messagein; 05 static int port; 06 static String outfilename; 07 public Server13_4() { 08 try{ 09 ServerSocket SS = new ServerSocket(port); 10 System.out.println("Server is created and waiting Client to connect..."); 11 Socket socket = SS.accept(); 12 System.out.println("Client IP = " + socket.getInetAddress().getHostAddress());

範例130:續1 13 DataInputStream instream = new DataInputStream(socket.getInputStream()); 14 FileOutputStream fos = new FileOutputStream(outfilename);   15 while(messagein != -1){ 16 messagein = instream.readInt(); 17 fos.write(messagein); 18 } 19 System.out.println("Data written to File successfully!"); 20 } 21 catch(IOException e){ 22 System.out.println(e.getMessage()); 23 } 24 }

範例130:續2 25 public static void main(String args[]){ 26 if(args.length < 2){ 27 System.out.println("Usage: java Server13_4 [port] [outfilename]"); 28 System.exit(1); 29 } 30 port=Integer.parseInt(args[0]); 31 outfilename = args[1]; 32 Server13_4 ServerStart=new Server13_4(); 33 } 34 }

範例130:續3 檔案Client13_4.java: 35 import java.io.*; 36 import java.net.*;   37 public class Client13_4 { 38 int i; 39 static String iaddr; 40 static int port; 41 static String infilename; 42 public Client13_4() { 43 try{ 44 Socket socket=new Socket(InetAddress.getByName(iaddr),port); 45 DataOutputStream outstream = new DataOutputStream(socket.getOutputStream()); 46 FileInputStream fis = new FileInputStream(infilename);

範例130:續4 47 while((i=fis.read()) !=-1) outstream.writeInt(i);   49 System.out.println("Data sent to internet successfully!"); 50 socket.close(); 51 } 52 catch(IOException e){ 53 System.out.println(e.getMessage()); 54 } 55 }

範例130:續5 56 public static void main(String args[]) { 57 if (args.length < 3){ 58 System.out.println("USAGE: java Client13_4 [iaddr] [port] [infilename]"); 59 System.exit(1); 60 }   61 iaddr = args[0]; 62 port=Integer.parseInt(args[1]); 63 infilename = args[2]; 64 Client13_4 ClientStart=new Client13_4(); 65 } 66 }

13-5 檔案上傳(File Upload)   設計範例131,從Client端將特定檔案由網路上傳(Upload) 到Server端所在目錄內。也即、當要對特定檔案執行網路上傅時,將本例Client.class置於該特定檔案所在目錄,再將本例Server.class置於遠端目的目錄,依執行步驟即可上傳該特定檔案。

範例131:設有檔案Server_upload.java、Client_upload.java其功能為解釋檔案上傳之應用。   檔案Server_upload.java: 01 import java.net.*; 02 import java.io.*; 03 public classServer_upload { 04 static int port; 05 static String uploadFile; 06 int messagein; 07 public Server_upload() { 08 try{ 09 ServerSocket SS = new ServerSocket(port); 10 System.out.println("Server_upload is ready..."); 11 Socket cmdsocket = SS.accept(); 12 Socket datasocket = SS.accept();

範例131:續1 13 System.out.println("Client IP = " + cmdsocket.getInetAddress().getHostAddress()); 14 DataInputStream cmdinstream = new DataInputStream(cmdsocket.getInputStream()); 15 uploadFile = cmdinstream.readUTF();   16 DataInputStream datainstream = new DataInputStream(datasocket.getInputStream()); 17 FileOutputStream fos = new FileOutputStream(uploadFile); 18 while(messagein != -1){ 19 messagein = datainstream.readInt(); 20 fos.write(messagein); 21 } 22 System.out.println("File is uploaded successfully!"); 23 }

範例131:續2 24 catch(IOException e){ 25 System.out.println(e.getMessage()); 26 } 27 }   28 public static void main(String args[]){ 29 if(args.length < 1){ 30 System.out.println("Usage: java Server_upload [port]"); 31 System.exit(1); 32 } 33 port = Integer.parseInt(args[0]); 34 Server_upload ServerStart=new Server_upload(); 35 } 36 }

範例131:續3 檔案Client_upload.java: 37 import java.io.*; 38 import java.net.*;   39 public class Client_upload { 40 int i; 41 static String iaddr; 42 static int port; 43 static String uploadFile; 44 public Client_upload() { 45 try{ 46 Socket cmdsocket=new Socket(InetAddress.getByName(iaddr),port); 47 Socket datasocket=new Socket(InetAddress.getByName(iaddr),port);

範例131:續4 48 DataOutputStream cmdoutstream = new DataOutputStream(cmdsocket.getOutputStream()); 49 cmdoutstream.writeUTF(uploadFile);   50 DataOutputStream dataoutstream = new DataOutputStream(datasocket.getOutputStream()); 51 FileInputStream fis = new FileInputStream(uploadFile); 52 while((i=fis.read()) !=-1) dataoutstream.writeInt(i); 53 dataoutstream.writeInt(i); 54 System.out.println("File is sent to internet successfully!"); 55 cmdsocket.close(); 56 datasocket.close(); 57 }

範例131:續5 58 catch(IOException e){ 59 System.out.println(e.getMessage()); 60 } 61 }   62 public static void main(String args[]) { 63 if (args.length < 3){ 64 System.out.println("USAGE: java Client_upload [iaddr] [port] [uploadFile]"); 65 System.exit(1); 66 } 67 iaddr = args[0]; 68 port=Integer.parseInt(args[1]); 69 uploadFile = args[2]; 70 Client_upload ClientStart=new Client_upload(); 71 } 72 }

13-6 檔案下載(File Download)   設計範例132,從Client端對Server端所在目錄內之檔案執行下載(Download)。也即、當要對特定檔案執行網路下載時,將本例Client.class置於需求目錄內,再將本例Server.class置於遠端檔案群目錄內,依執行步驟從Client端對Server端目錄內之特定檔案執行下載。

範例132:設有檔案Server_download.java、Client_download.java其功能為解釋檔案下載之應用。   檔案Server_download.java: 01 import java.net.*; 02 import java.io.*; 03 public class Server_download { 04 static int port; 05 static String downloadFile; 06 int messagein, i; 07 public Server_download() { 08 try{ 09 ServerSocket SS = new ServerSocket(port); 10 System.out.println("Server_download is ready...");

範例132:續1 11 Socket cmdsocket = SS.accept(); 12 Socket datasocket = SS.accept();   13 System.out.println("Client IP = " + cmdsocket.getInetAddress().getHostAddress()); 14 DataInputStream cmdinstream = new DataInputStream(cmdsocket.getInputStream()); 15 downloadFile = cmdinstream.readUTF(); 16 DataOutputStream dataoutstream = new DataOutputStream(datasocket.getOutputStream()); 17 FileInputStream fis = new FileInputStream(downloadFile); 18 while((i=fis.read()) !=-1) 19 dataoutstream.writeInt(i); 20 dataoutstream.writeInt(i);

範例132:續2 21 System.out.println("File is sent to internet successfully!"); 22 datasocket.close(); 23 cmdsocket.close(); 24 } 25 catch(IOException e){ 26 System.out.println(e.getMessage()); 27 } 28 }   29 public static void main(String args[]){ 30 if(args.length < 1){ 31 System.out.println("Usage: java Server_download [port]"); 32 System.exit(1); 33 } 34 port=Integer.parseInt(args[0]); 35 Server_download ServerStart=new Server_download(); 36 } 37 }

範例132:續3 檔案Client_download.java: 38 import java.io.*; 39 import java.net.*;   40 public class Client_download { 41 int i; 42 static String iaddr; 43 static int port; 44 static String downloadFile; 45 int messagein; 46 public Client_download() { 47 try{ 48 Socket cmdsocket=new Socket(InetAddress.getByName(iaddr),port); 49 Socket datasocket=new Socket(InetAddress.getByName(iaddr),port);

範例132:續4 50 DataOutputStream cmdoutstream = new DataOutputStream(cmdsocket.getOutputStream()); 51 cmdoutstream.writeUTF(downloadFile);   52 DataInputStream datainstream = new DataInputStream(datasocket.getInputStream()); 53 FileOutputStream fos = new FileOutputStream(downloadFile); 54 while(messagein != -1){ 55 messagein = datainstream.readInt(); 56 fos.write(messagein); 57 } 58 System.out.println("File is downloaded successfully!"); 59 cmdsocket.close(); 60 datasocket.close(); 61 }

範例132:續5 62 catch(IOException e){ 63 System.out.println(e.getMessage()); 64 } 65 }   66 public static void main(String args[]) { 67 if (args.length < 3){ 68 System.out.println("USAGE: java Client_download [iaddr] [port] [downloadFile]"); 69 System.exit(1); 70 } 71 iaddr = args[0]; 72 port=Integer.parseInt(args[1]); 73 downloadFile = args[2]; 74 Client_download ClientStart=new Client_download(); 75 } 76 }