Microsoft Word - newJavaA4.doc

Similar documents
Java Access 5-1 Server Client Client Server Server Client 5-2 DataInputStream Class java.io.datainptstream (extends) FilterInputStream InputStream Obj

新・解きながら学ぶJava

Microsoft Word - 投影片ch14

JavaIO.PDF

OOP with Java 通知 Project 6: 5 月 30 日晚 9 点

09 (File Processes) (mkdir) 9-3 (createnewfile) 9-4 (write) 9-5 (read) 9-6 (deletefile) 9-7 (deletedir) (Exercises)

OOP with Java 通知 Project 6: 6 月 6 日晚 9 点

OOP with Java 通知 Project 6: 5 月 24 日晚 9 点

CHAPTER VC#

Microsoft Word - 投影片ch03

while ((ch = fr.read())!= -1) { System.out.print((char) ch); fr.close(); 例 3: 用 BufferedReader 读 TXT 文件 public class FileReaderDemo3 { public static v

第1章

第1章

3.1 num = 3 ch = 'C' 2

CC213

untitled

1.JasperReport ireport JasperReport ireport JDK JDK JDK JDK ant ant...6

untitled

x MapReduce A Italic URL Constant width Constant width bold Constant width italic 這個圖示代表提示或建議 這個圖示代表一般註解

Java網路程式教材研發

主程式 : public class Main3Activity extends AppCompatActivity { ListView listview; // 先整理資料來源,listitem.xml 需要傳入三種資料 : 圖片 狗狗名字 狗狗生日 // 狗狗圖片 int[] pic =new

Python a p p l e b e a r c Fruit Animal a p p l e b e a r c 2-2

MRSTERY E / / / Wat er 4 Wat er Wat er m 2~ ~

chp6.ppt

Microsoft Word - 01.DOC

Microsoft PowerPoint - course6.ppt

使 用 Java 语 言 模 拟 保 险 箱 容 量 门 板 厚 度 箱 体 厚 度 属 性 锁 具 类 型 开 保 险 箱 关 保 险 箱 动 作 存 取 款

Microsoft PowerPoint - SE7ch12.ppt

Microsoft Word - 投影片ch22

Java java.lang.math Java Java.util.Random : ArithmeticException int zero = 0; try { int i= 72 / zero ; }catch (ArithmeticException e ) { // } 0,

Microsoft PowerPoint ppt

雲端 Cloud Computing 技術指南 運算 應用 平台與架構 10/04/15 11:55:46 INFO 10/04/15 11:55:53 INFO 10/04/15 11:55:56 INFO 10/04/15 11:56:05 INFO 10/04/15 11:56:07 INFO

第二章 Java 语法基础 实验目的 (1) 常量 变量与数据类型 a. 掌握 Java 的常量 变量声明及使用方法 b. 掌握 Java 各种数据类型的使用 c. 掌握基本的输入输出方法 (2) 运算符与表达式 a. 掌握算术运算 关系运算 逻辑运算, 及优先关系 b. 掌握表达式的使用 (3)

epub 33-8

Microsoft PowerPoint - 20-string-s.pptx

C/C++语言 - C/C++数据

CHAPTER 1

第1章

Microsoft Word - JAVA Programming Language Homework VI_ans.doc

C C

新版 明解C++入門編

目 录 实 验 一 : 熟 悉 Java 开 发 环 境... 1 实 验 二 : 类 与 面 向 对 象... 7 实 验 三 : 继 承 和 多 态 实 验 四 : 异 常 处 理 实 验 五 : 流 文 件 及 基 于 文 本 的 应 用... 23

4 CHAPTER 基本輸出入 JAVA

1: public class MyOutputStream implements AutoCloseable { 3: public void close() throws IOException { 4: throw new IOException(); 5: } 6:

Guava学习之Resources

Microsoft PowerPoint - EmbSys101_Java Basics.ppt [相容模式]

第 5 章 使用資料

计 算 机 系 统 应 用 年 第 25 卷 第 4 期 线 程 的 复 用 [2,3]. 通 常 情 况 下, 服 务 器 端 程 序 在 启 动 时 创 建 若 干 数 量 的 线 程 对 象 并 缓 存 起 来, 此 时 它 们 处 于

1.5招募说明书(草案)

Microsoft Word - 第3章.doc

Microsoft PowerPoint - C_Structure.ppt

实验目的 (1) 熟练掌握顺序 分支 循环三种结构 (2) 会使用流程控制结构编写程序 第三章程序的流程控制 实验要求 (1) 掌握 if-else swith-case 的使用 (2) 掌握 while do-while for 的使用 (3) 掌握分支嵌套和循环嵌套 (4) 分析理解如何避免死循

<4D F736F F D20BAF4BADEA457BDD2B1D0A7F75F4A415641B57BA6A1B2D52E646F63>

目 录 服 务 端 回 调 接 口 V 概 述 接 口 协 议 描 述 支 付 结 果 通 知 接 口 说 明 请 求 响 应 举 例 签 名 机 制

《面向对象程序设计A》课程教学大纲Ⅱ4

Chapter 9: Objects and Classes

運算子多載 Operator Overloading

電機工程系認可證照清單 /7/1

数据结构与算法 - Python基础

Chapter 9: Objects and Classes

Java 程式設計初階 第 5 章:基本輸出入 & 流程控制

Microsoft PowerPoint - C-Ch11.ppt

2009年9月全国计算机等级考试二级Java真题及答案

Fun Time (1) What happens in memory? 1 i n t i ; 2 s h o r t j ; 3 double k ; 4 char c = a ; 5 i = 3; j = 2; 6 k = i j ; H.-T. Lin (NTU CSIE) Referenc

C/C++程序设计 - 字符串与格式化输入/输出

Microsoft PowerPoint - course2.ppt

chp7.ppt

第3章 Java语言基础

Microsoft Word - JAVA Programming Language Homework I ans

KillTest 质量更高 服务更好 学习资料 半年免费更新服务

EJB-Programming-3.PDF

CC213

Microsoft PowerPoint - STU_C_Lang_CH03.ppt

Microsoft PowerPoint - CH06.ppt [相容模式]

C++ 程序设计 告别 OJ1 - 参考答案 MASTER 2019 年 5 月 3 日 1

EJB-Programming-4-cn.doc

Microsoft Word - CS-981.doc

Microsoft PowerPoint - L17_Inheritance_v4.pptx

新・解きながら学ぶC言語

Microsoft PowerPoint - EmbSys102_JavaOOP [相容模式]

实验报告 实验题目 Java 实验 (1) 实验目的 学习 Java 语言的编程 实验准备 直接从网上或从上传作业的网站上下载并安装 JDK

9, : Java 19., [4 ]. 3 Apla2Java Apla PAR,Apla2Java Apla Java.,Apla,,, 1. 1 Apla Apla A[J ] Get elem (set A) A J A B Intersection(set A,set B) A B A B

Microsoft PowerPoint - ch09_AEL0080.ppt

任務二 : 產生 20 個有炸彈的磚塊, 放在隨機的位置編輯 Block 類別的程式碼 import greenfoot.; // (World, Actor, GreenfootImage, Greenfoot and MouseInfo) Write a description of class

IO

CC213

Microsoft Word - 投影片ch13

C 1

大 綱 背 景 解 決 之 道 文 獻 探 討 建 置 貝 氏 網 路 研 究 結 果 結 論 2

投影片 1

新版 明解C言語入門編

C 語言—陣列及字串

Socket Socket TcpClient Socket.Connect TcpClient.Connect Socket.Send / Receive NetworkStream 6-5

Java

Microsoft Word - CPMidTerm2010SpringSolution

停止混流接口 请注意 : 该功能需要联系 ZEGO 技术支持开通 1 接口调用说明 http 请求方式 : POST/FORM, 需使用 https 正式环境地址 access_token=access_token (http

概述

untitled

Microsoft PowerPoint - java2012-ch12投影片.ppt

第3章.doc

Transcription:

P74 拾壹. 基本輸入與輸出 一. 使用的物件 1.Java 的輸入與輸出會使用到 Java.lang 套件中的 System 類別與 Java.io 套件, 其中 Java.io 套件中以 Reader/Writer 與 InputStream/OutputStream 類別最 重要, 前者以字元 (Character) 為導向, 後者以位元組 (Byte) 為導向 2.System 類別中最主要宣告了三個類別物件,System.in 用於系統輸入位元組資料, 一 般指鍵盤而言,System.out 用於系統輸出位元組資料, 一般指螢幕而言, System.err 用於系統輸出錯誤訊息, 一般指螢幕而言 3. 輸入 / 輸出類別繼承的架構 java.lang.object +- java.io.inputstream +- java.io.fileinputstream +- java.io.datainputstream +- : +- java.io.outputstream +- java.io.fileoutputstream +- java.io.dataoutputstream +- Java.io.PrintStream +- : +- Java.io.Reader +- Java.io.BufferedReader +- Java.io.InputStreamReader +- Java.io FileReader +- : +- Java.io.Writer +- Java.io.Bufferedwriter +- Java.io.OutputStreamWriter +- Java.io FileWriter +- : 二. 字元輸入 1. 一般而言對 Reader 物件提出輸入要求時, 會引發另一輸入要求, 通常使用 InputStreamReader 物件 ( 自鍵盤輸入 ) 或 FileReader 物件 ( 自本文檔輸入 ), 而為了輸入的效率, 又用到使用緩衝區的 BufferedReader 子類別例 : 自鍵盤輸入 -- P74 --

InputStreamReader isr=new InputStreamReader(System.in); BufferedReader br=new BufferedReader(isr); 或可將兩列合併寫成一列 BufferedReader br=new BufferedReader(new InputStreamReader(System.in)) 接著就可用 BufferedReader 類別的方法輸入資料了例 : 自本文檔輸入 FileReader fr=new FileReader( test.txt ); BufferedReader br=new BufferedReader(fr); 或可將兩列合併寫成一列 BufferedReader br=new BufferedReader(new FileReader( test.txt )) 接著就可用 BufferedReader 類別的方法輸入資料了 P75 2.BufferedReader 類別常用的方法方法說明 BufferedReader(Reader in) 建構子, 使用 Reader 物件以預設緩衝區建立輸入資料流 int read()throws IOException 讀入一個字元, 以整數傳回 String readline()throws IOException 讀入一列本文, 以字串傳回, 一列本文以 \n, \r, 或 \r\n 結束 boolean ready()throws IOException 檢驗緩衝區是否有資料可讀, 傳回布林值 void close()throws IOException 關閉輸入資料流 三. 字元輸出 1. 一般而言對 Writer 物件提出輸出要求時, 會引發另一輸出要求, 通常使用 OutputStreamWriter 物件 ( 輸出至螢幕 ) 或 FileWriter 物件 ( 輸出至本文檔 ), 而為了輸出的效率, 又用到使用緩衝區的 BufferedWriter 子類別例 : 輸出至螢幕 OutputStreamWriter osw=new OutputStreamWriter(System.out); BufferedWriter bw=new BufferedWriter(osw); 或可將兩列合併寫成一列 BufferedWriter bw=new BufferedWriter(new OutputStreamWriter(System.out)) 接著就可用 BufferWriter 類別的方法輸出資料了例 : 輸出至本文檔 FileWriter fw=new FileWriter( test.txt ); BufferedWriter bw=new BufferedWriter(fw); 或可將兩列合併寫成一列 BufferedWriter bw=new BufferedWriter(new FileWriter( test.txt )) -- P75 --

接著就可用 BufferedWriter 類別的方法輸出資料了 P76 2.BufferedWriter 類別常用的方法方法 BufferedWriter(Writer out) void write(int c) throws IOException write(string s) throws IOException void newline()throws IOException void flush()throws IOException void close()throws IOException 說明建構子, 使用 Writer 物件以預設緩衝區建立輸出資料流寫出一個整數值代表的字元寫出一個字串寫出一個新列符號, 一般為 \n 將輸出資料流中的資料強迫寫出關閉輸出資料流 // 輸入自鍵盤, 輸出至螢幕 2 public class ch11_1 6 String str; 7 InputStreamReader isr=new InputStreamReader(System.in); 8 BufferedReader br=new BufferedReader(isr); 9 OutputStreamWriter osw=new OutputStreamWriter(System.out); 10 BufferedWriter bw=new BufferedWriter(osw); 11 while(true) 12 { 13 System.out.print(" 從鍵盤輸入 :"); 14 str=br.readline(); 15 if(str.length()==0) break; 16 bw.write(str); 17 bw.newline(); 18 bw.flush(); 19 } 20 br.close(); 21 bw.close(); 22 } 23 } // 輸入自鍵盤, 輸出至本文檔 test.txt 2 public class ch11_2 -- P76 --

6 String str; 7 InputStreamReader isr=new InputStreamReader(System.in); 8 BufferedReader br=new BufferedReader(isr); 9 FileWriter fw=new FileWriter("test.txt"); 10 BufferedWriter bw=new BufferedWriter(fw); 11 while(true) 12 { 13 System.out.print(" 從鍵盤輸入 :"); 14 str=br.readline(); 15 if(str.length()==0) break; 16 bw.write(str); 17 bw.newline(); 18 } 19 br.close(); 20 bw.close(); 21 } 22 } P77 // 輸入自本文檔 test.txt, 輸出至螢幕 2 public class ch11_3 6 String str; 7 FileReader fr=new FileReader("test.txt"); 8 BufferedReader br=new BufferedReader(fr); 9 OutputStreamWriter osw=new OutputStreamWriter(System.out); 10 BufferedWriter bw=new BufferedWriter(osw); 11 while(br.ready()) 12 { 13 str=br.readline(); 14 bw.write(str); 15 bw.newline(); 16 } 17 br.close(); 18 bw.close(); 19 } 20 } -- P77 --

P78 // 輸入自本文檔 test.txt, 輸出至本文檔 test.bak 2 public class ch11_4 6 String str; 7 FileReader fr=new FileReader("test.txt"); 8 BufferedReader br=new BufferedReader(fr); 9 FileWriter fw=new FileWriter("test.bak"); 10 BufferedWriter bw=new BufferedWriter(fw); 11 while(br.ready()) 12 { 13 str=br.readline(); 14 bw.write(str); 15 bw.newline(); 16 } 17 br.close(); 18 bw.close(); 19 } 20 } // 計算本文檔 test.txt 內字母與單字個數 2 public class ch11_5 6 int ch; 7 int wdcount=0,chcount=0; 8 9 FileReader fr=new FileReader("test.txt"); 10 BufferedReader br=new BufferedReader(fr); 11 OutputStreamWriter osw=new -- P78 --

OutputStreamWriter(System.out); 12 BufferedWriter bw=new BufferedWriter(osw); 13 while(br.ready()) 14 { 15 ch=br.read(); 16 if(ch=='\r') continue; 17 if(ch==' ' ch=='\n') 18 { 19 bw.newline(); 20 wdcount++; 21 } 22 else 2 24 bw.write(ch); 25 chcount++; 26 } 27 } 28 bw.write(" 字母共 "+String.valueOf(chcount)); 29 bw.newline(); 30 bw.write(" 單字共 "+String.valueOf(wdcount)); 31 bw.newline(); 32 br.close(); 33 bw.close(); 34 } 35 } P79 四. 位元組的輸入與輸出 1.DataInputStream 類別與 DataOutputStream 類別因繼承的關係, 所以也能串接其它的資料流, 進而利用自己的方法來存取, 在存取時是以資料型態 byte 數的長度直接進出資料流 2.DataInputStream 類別常用的方法 方法 說明 DataInputStream(InputStream in) 建構子, 使用 InputStream 物件建立輸入資料流 int read(byte[] b,int off,int len) 讀入位元組陣列 b boolean readboolean() 讀入布林值 byte readbyte() 讀入位元組 -- P79 --

P80 char readchar() 讀入字元 int readint() 讀入整數 short readshort() 讀入短整數 long readlong() 讀入長整數 float readfloat() 讀入單精準數 double readdouble() 讀入倍精準數 String readutf() 讀入 UTF 格式字串 註 : 所謂 UTF 格式字串, 是一種為增加效率而編碼過的字串, 將一個字元 (2 Bytes) 依 特定的規則, 編成 1byte,2byte 或 3byte 不等的長度 3.DataOutputStream 類別常用的方法 方法 說明 DataOutputStream(OutputStream out) 建構子, 使用 OutputStream 物件建立輸入資料流 void write(byte[] b,int off,int len) 寫出位元組陣列 b void writeboolean(boolean v) 寫出布林值 void writebyte(byte v) 寫出位元組 void writebytes(string s) 以位元組方式寫出字串 void writechar(int v) 寫出字元 void writechars(string s) 以字元方式寫出字串 void writeint(int v) 寫出整數 void writeshort(short v) 寫出短整數 void writelong(long v) 寫出長整數 void writefloat(float v) 寫出單精準數 void writedouble(double v) 寫出倍精準數 void writeutf(string str) 寫出 UTF 格式字串 void flush() 將資料流中的資料寫出 五. 列印資料流 1.PrintStream 類別產生列印資料流, 我們常用的 System.out 是它的一個物件, 而 print() 與 println() 是該物件的方法, 可列印所有資料型態的資料 ( 布林值, 整數, 長整數, 浮點數, 倍精準浮點數字元, 字串, 物件等 ) 2.PrintStream 類別常用的方法方法 PrintStream(OutputStream out) void print(any data) void println(any data) void println() void write(int b) void write(byte[] buf,int off, int len) 說明建構子, 使用 OutputStream 物件建立輸出資料流寫出一個資料, 其中 any 可為 boolean, char, char[], int, long, float, double, String 寫出一個資料並換列, 其中 any 可為 boolean, char, char[], int, long, float, double, String 寫出一個換列寫出一個位元組寫出一個起頭位置為 off 長度為 len 的位元組陣列 -- P80 --

void close() buf 關閉輸出資料流 註 :print() 方法與 println() 方法類似, 所不同者 println() 輸出後會換列, 而 print() 不會換列 // 自鍵盤輸入以位元組輸出至二進位檔 test.bin 2 public class ch11_6 6 String name; 7 int chi,eng,mat; 8 9 BufferedReader br=new BufferedReader(new InputStreamReader(System.in)); 10 DataOutputStream dos=new DataOutputStream(new FileOutputStream("test.bin")); 11 12 System.out.println(" 從鍵盤輸入 :"); 13 while(true) 14 { 15 System.out.print(" 姓名 :"); 16 name=br.readline(); 17 if(name.length()==0) break; 18 dos.writeutf(name); 19 System.out.print(" 國文 :"); 20 chi=integer.parseint(br.readline()); 21 dos.writeint(chi); 22 System.out.print(" 英文 :"); 23 eng=integer.parseint(br.readline()); 24 dos.writeint(eng); 25 System.out.print(" 數學 :"); 26 mat=integer.parseint(br.readline()); 27 dos.writeint(mat); 28 } 29 dos.writeutf("eof"); 30 dos.close(); 31 br.close(); 32 } 33 } P81 -- P81 --

P82 // 自二進位檔 test.bin 以位元組輸入顯示在螢幕上 2 public class ch11_7 6 String name; 7 int chi,eng,mat,sum; 8 float avg; 9 10 DataInputStream dis=new DataInputStream(new FileInputStream("test.bin")); 11 BufferedWriter bw=new BufferedWriter(new OutputStreamWriter(System.out)); 12 try 1 14 bw.write(" 姓名 \t 國文 \t 英文 \t 數學 \t 總和 \t 平均 "); 15 bw.newline(); 16 bw.flush(); 17 while(true) 18 { 19 name=dis.readutf(); 20 if(name=="eof") break; 21 chi=dis.readint(); 22 eng=dis.readint(); 23 mat=dis.readint(); 24 sum=chi+eng+mat; 25 avg=(float)(sum/3.0); 26 27 bw.write(name); 28 bw.write("\t"+chi); 29 bw.write("\t"+eng); 30 bw.write("\t"+mat); 31 bw.write("\t"+sum); 32 bw.write("\t"+avg); 33 bw.newline(); 34 bw.flush(); -- P82 --

35 } 36 dis.close(); 37 bw.close(); 38 } 39 catch(ioexception e){} 40 } 41 } P83 六. 練習 1. 設計程式 ex11_1.java, 將 ch11_6.java 產生的二進位檔 test.bin 轉成本文檔 ex11_1.txt 2. 設計程式 ex11_2.java, 將 ex11_1.java 產生的本文檔 ex11_1.txt 轉成二進位檔 ex11_2.bin -- P83 --