版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、檔案與輸入輸出串流(File and Input/Output Streams)簡介在資料傳輸上,我們可將電腦的週邊設備(如印表機、螢幕、磁碟等) 視為是檔案,資料從一個檔案傳送到另一個檔案,甚至可將範圍擴大到無遠弗屆的網路上。 無論是於何種設備、何種範圍,Java語言在資料傳遞上,均是以串流方式傳遞,對當事程式來言,從來源設備輸入(Input) 資料串流,再輸出(Output) 資料串流到指定的目的設備,完成資料傳輸之執行。檔案物件(File Objects)Java系統之java.io有其內建之檔案類別File.class,我們只要於程式檔案加入import java.io.File,即可
2、以此類別產生新檔案物件,如: Filefile=newFile(fileName);其中fileName為指定檔案之名稱,file為新產生之檔案物件。Ex. Filefile=newFile(“c:/jbook/stream.txt”);範例:檔案物件之應用。 importjava.io.File; class Ex_1 public static void main(String args) if (args.length 1) System.out.println(Usage: java Ex_1 fileName); System.exit(1); String fileName = a
3、rgs0; Filef=newFile(fileName); System.out.println(The File is: ); System.out.println( File Name: + f.getName(); 範例:檔案物件之應用。import java.io.*;public class e_1a public static void main(String args) /File(String pathname) File filename =new File(C:/JDKbook/stream.txt); System.out.println(filename.exists
4、(); File pathname =new File(C:/JDKbook); System.out.println(pathname.exists(); /File(String parent,String child) File fullname =new File(C:/JDKbook, stream.txt); System.out.println(pathname.exists(); /File(File parent,String child) File f =new File(pathname, stream.txt); System.out.println(f.exists(
5、); 檔案輸入輸出串流(File Input/Output Streams)Java程式之輸入輸出串流類別繼承自:l(1) InputStream/OutputStreaml用於位元傳輸,以位元組(Bytes) 為傳輸單位l(2) Reader/Writerl以字元(Character) 為傳輸單位,適用於以Unicode編碼之文字(如中文等亞洲語系)。FileInputStream與FileOutputStream類別FileInputStream繼承自InputStream;類別FileOutputStream繼承自OutputStream,用於檔案資料傳遞。FileOutputStrea
6、m主要功能是定義一檔案輸出串流,將簡單型別int、byte寫入檔案FilefileName=newFile(“c:/Java”,“test1.txt”);FileInputStreamfos=newFileInputStream(fileName);範例:FileOutputStream之應用。 01 import java.io.*; 02 class Ex_2 03 public static void main(String args) throws Exception 04 if (args.length 1) 05 System.out.println(Usage: java Ex_
7、2 fileName);06 System.exit(1);07 08 String fileName = args0;09 FileOutputStreamfos=newFileOutputStream(fileName); 10 String line = Test for FileOutputStream 中文測試; 11 fos.write(line.getBytes();/字串轉成位元陣列後寫入字串轉成位元陣列後寫入12 fos.close();13 14 範例:以FileInputStream / FileOutStream將一個檔案之內容傳遞至另一個檔案內。01 import j
8、ava.io.*; 02 class Ex_3 03 public static void main(String args) throws Exception 04 int i;05 if (args.length 2) 06 System.out.println(Usage: java Ex_3 infileName outfileName);07 System.exit(1);08 09 String infileName = args0;10 String outfileName = args1;11 FileInputStreamfis=newFileInputStream(infi
9、leName);12 FileOutputStreamfos=newFileOutputStream(outfileName);13 while(i=fis.read()!=-1) 14 fos.write(i);15 16 DataInputStream與DataOutputStream使用DataInputStream / DataOutputStream時,須與其父類別FileInputStream / FileOutputStream 搭配使用。可將Java所有型別資料寫入檔案FileOutputStreamfos=newFileOutputStream(fileName);DataO
10、utputStreamdos=newDataOutputStream(fos);Strings=“Thisisabook.”;dos.writeBytes(s);dos.close();fos.close();範例:FileOutputStream / DataOutputStream之應用。01 import java.io.*; 02 class Ex_4 03 public static void main(String args)throws Exception 04 if (args.length 1) 05 System.out.println(Usage: java Ex_4 f
11、ileName);06 System.exit(1);07 08 String fileName = args0;09 FileOutputStreamfos=newFileOutputStream(fileName);10 DataOutputStreamdos=newDataOutputStream(fos); 11 String s= Test for DataOutputStream 中文測試;12 dos.write(s.getBytes();13 /dos.writebytes(s);14 dos.close();16 fos.close(); 17 範例:以FileInputSt
12、ream / DataInputStream、FileOutStream / DataOutputStream將一個檔案之內容傳遞至另一個檔案內。01 import java.io.*; 02 class Ex_5 03 public static void main(String args)throws Exception 04 int i;05 if (args.length 2) 06 System.out.println(Usage: java Ex_5 infileName outfileName);07 System.exit(1);08 09 String infileName
13、= args0;10 String outfileName = args1;11 FileInputStreamfis=newFileInputStream(infileName);12 DataInputStreamdis=newDataInputStream(fis);13 FileOutputStreamfos=newFileOutputStream(outfileName);14 DataOutputStreamdos=newDataOutputStream(fos);15 while(i=dis.read() !=-1) 16 dos.write(i);17 18 19 FileRe
14、ader與FileWriter以FileReader / FileWriter 產生之輸入/輸出串流,可讀寫以雙位元Unicode之輸入/輸出資料,適用亞洲各國文字之編碼,因此可用於解決中文的問題。範例:FileReader之應用。 01 import java.io.*; 02 class Ex_7 03 public static void main(String args) throws Exception 04 int i;05 if (args.length 1) 06 System.out.println(Usage: java Ex_7 fileName);07 System.e
15、xit(1);08 09 String fileName = args0;10 FileReaderfr=newFileReader(fileName);11 while(i=fr.read() !=-1) 12 System.out.print(char)i);13 14 15 範例:FileWriter之應用。 01 import java.io.*; 02 class Ex_8 03 public static void main(String args) throws Exception 04 if (args.length 1) 05 System.out.println(Usage
16、: java Ex_8 fileName);06 System.exit(1);07 08 String fileName = args0;09 FileWriterfw=newFileWriter(fileName); 10 String line = Test for FileWriter 測試FileWriter之中文; 11 fw.write(line);12 fw.flush();13 14 範例:以FileReader / FileWriter將一個檔案之內容傳遞至另一個檔案內。01 import java.io.*; 02 class Ex_9 03 public static
17、void main(String args) throws Exception 04 int i; 05 if (args.length 2) 06 System.out.println(Usage: java Ex_9 infileName outfileName);07 System.exit(1);08 09 String infileName = args0;10 String outfileName = args1;11 FileReaderfr=newFileReader(infileName);12 FileWriterfw=newFileWriter(outfileName);
18、13 while(i=fr.read() !=-1) 14 fw.write(i); 15 16 fw.flush();17 18 鍵盤資料輸入電腦之週邊設備均可視為是檔案(如鍵盤、螢幕、印表機等),其間資料的傳遞猶如檔案間資料的傳遞。InputStreamReaderisr=newInputStreamReader(System.in);BufferedReaderbr=newBufferedReader(isr);範例:鍵盤資料輸入之應用。 01 import java.io.*; 02 class Ex_9 03 public static void main(String args)t
19、hrows IOException 04 int i; 05 InputStreamReaderisr=newInputStreamReader(System.in);06 BufferedReaderbr=newBufferedReader(isr); 07 System.out.println(Input data in the keyboard: );08 while(true)09 i=br.read();10 System.out.print(char)i);11 12 13 範例:由鍵盤輸入資料,以FileOutputStream串流寫入新檔案(無法寫入中文)。01 mport j
20、ava.io.*;02 class Ex_10 03 public static void main(String args)throws IOException 04 int i;05 if (args.length 1) 06 System.out.println(Usage: java Ex_10 outfileName);07 System.exit(1);08 09 String outfileName = args0; 10 InputStreamReader isr =new InputStreamReader(System.in);11 BufferedReader br = new BufferedReader(isr);12 FileOutputStreamfos=newFileOutputStream(outfileName);13 System.out.printl
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025年中国南水北调集团新能源投资有限公司第三批社会招聘31人备考题库完整参考答案详解
- 包钢(集团)公司2026年新员工招聘322人备考题库附答案详解
- 2025年内蒙古艺术剧院招聘编外聘用人员22人备考题库及参考答案详解一套
- 2025年河池市金城江区东江镇卫生院会计岗位公开招聘备考题库及一套答案详解
- 2026年防城港职业技术学院单招综合素质考试题库附参考答案详解(夺分金卷)
- 2026年陕西省安康地区单招职业适应性考试题库附参考答案详解(典型题)
- 国家事业单位招聘2024国家统计局在京直属事业单位招聘应届毕业生25人笔试历年参考题库典型考点附带答案详解
- 国家事业单位招聘2024全国台联所属事业单位招聘应届高校毕业生2人笔试历年参考题库典型考点附带答案详解
- 国家事业单位招聘2024中国粮油学会应届毕业生招聘统一笔试笔试历年参考题库典型考点附带答案详解
- 2026年闽西职业技术学院单招职业技能考试题库附答案详解(能力提升)
- 关于组织2026年春季新员工入职培训的通知函9篇范本
- 2025年江西旅游商贸职业学院单招职业适应性测试题库及答案解析
- 播种绿色希望共建美丽校园2026植树节主题教育课件
- 2026年海南软件职业技术学院单招综合素质考试题库及答案解析
- 2025年安庆市生态环境保护综合行政执法支队内勤辅助岗招聘笔试参考题库附带答案详解
- 公司文明卫生考核制度
- 2025中国南水北调集团新能源投资有限公司所属单位公开招聘34人笔试参考题库附带答案详解
- 《生成式人工智能应用实战》 课件全套 第1-10章:AI 与 AIGC 概述-AIGC应用综合实训
- 2026年春人教版(新教材)小学体育与健康三年级全一册教学计划及进度表(第二学期)
- 心理健康教育工作主要经验、做法以及争创工作的主要成效
- GB 6441-2025生产安全事故分类与编码
评论
0/150
提交评论