首页 第10章

第10章

举报
开通vip

第10章null第十章第十章输入与输出null10.1 输入\输出类库 10.2 标准输入\输出及标准错误 10.3 文件操作10.1 输入\输出类库10.1 输入\输出类库 Java的输入输出功能必须借助于输入输出类库java.io包来实现,这个包中的类大部分是用来完成流式输入输出的类。 1. 流 1. 流 流是指在计算机的输入与输出之间的数据的序列,而Java中的数据流有位流(字节流)和字符流之分。 就流的运动方向而言,流可分为输入流(input stream)...

第10章
null第十章第十章输入与输出null10.1 输入\输出类库 10.2 标准输入\输出及标准错误 10.3 文件操作10.1 输入\输出类库10.1 输入\输出类库 Java的输入输出功能必须借助于输入输出类库java.io包来实现,这个包中的类大部分是用来完成流式输入输出的类。 1. 流 1. 流 流是指在计算机的输入与输出之间的数据的序列,而Java中的数据流有位流(字节流)和字符流之分。 就流的运动方向而言,流可分为输入流(input stream)和输出流(output stream),输入流代 关于同志近三年现实表现材料材料类招标技术评分表图表与交易pdf视力表打印pdf用图表说话 pdf 从外设流入计算机的数据序列;输出流代表从计算机流向外设的数据序列。流、程序、外设之间的关系 流、程序、外设之间的关系 数据键盘程序输入流输出流数据打印机显示器2 输入输出流类2 输入输出流类 在Java的流类中,最基本的类有两个: 输入流类InputStream和输出流类OutputStream。这两个是具有最基本的输入输出功能的抽象类,其他流类都是为了方便处理各种特定流而设置的,属于InputStream或OutputStream的子类。 InputStream类InputStream类 int read( ) long skip( ) void mark( ) void close( ) void reset( ) InputStream FileInputStream FilterInputStream DataInputStream BufferedInputStream InputStream类的主要方法InputStream子类的继承关系 OutputStream类OutputStream类void write( ) void flush( ) void close( )OutputStream FileOutputStream FilterOutputStream PrintStream DataOutputStreamOutputStream类的主要方法OutputStream子类的继承关系 Reader类Reader类int read( ) long skip( ) void mark( ) void close( ) void reset( ) Reader BufferedReader: InputStreamReader FileReader Reader类的主要方法Reader子类的继承关系 Writer类Writer类void write( ) void flash( ) void close( ) Writer PrintWriter BufferedWriter OutputStreamWriter FileWriter Writer类的主要方法Writer子类的继承关系 10.2 标准输入输出及标准错误10.2 标准输入输出及标准错误 Java系统预先定义好3个流对象分别表示标准输出设备、标准输入设备和标准错误设备,它们分别是System.out,System.in和System.err。 System.out是System的一个静态属性,属于PrintStream类对象,用于输出字节数据流,对应标准输出设备:屏幕。 System.in 也是System的一个静态属性,属于InputStream类对象,用于输入字节数据流,对应标准输入设备:键盘。 System.err 也是System的一个静态属性,属于PrintStream类对象,用于系统错误信息的输出,对应屏幕。 1 标准输入1 标准输入 Java的标准输入设备键盘用System.in表示,System.in属于InputStream类对象。当需要从键盘输入数据时,可以直接使用该类的read()方法或子类定义的其他方法 。Java实例——从键盘输入字符 Java实例——从键盘输入字符 import java.io.*; public class StandardIn1 { public static void main(String[] args) throws IOException { char c; System.out.println(" 输入一个字符"); c=(char)System.in.read(); System.out.print( "输入的字符是:"+c); } }例 --利用read()语句暂缓程序运行 例 --利用read()语句暂缓程序运行 import java.io.IOException; public class StandardIn2 { public static void main(String[] args) throws IOException { for (int i=1; i<=5; i++) System.out.println(i); System.out.println("按回车键继续... "); System.in.read(); System.out.print( "程序继续运行!"); } } 例 --输入字符串 例 --输入字符串 import java.io.*; public class StandardIn3 { public static void main(String[] args) throws IOException { InputStreamReader iin=new InputStreamReader(System.in); BufferedReader bin =new BufferedReader(iin); //创建String s; //一个使用指定大小输入缓冲区的缓冲字符float f; //输入流。 int i; boolean b; System.out.println(“输入任一字符串”); s=bin.readLine(); //读取一个文本行null System.out.println("输入浮点数"); f=Float.parseFloat(bin.readLine()); System.out.println("输入整数"); i=Integer.parseInt(bin.readLine()); System.out.println("输入布尔量"); b=new Boolean(bin.readLine()).booleanValue(); System.out.println("输入的字符串:"+s); System.out.println("输入的浮点数:"+f); System.out.println("输入的整数:"+i); System.out.println("输入的布尔量:"+b); } }2 标准输出2 标准输出 Java的标准输入设备:显示器用System.out表示,System.out属于PrintStream类对象。 利用PrintStream类的print()或println()方法可以非常方便地输出各类数据,这两个方法的唯一区别是:print()输出后不换行,而println()方法输出完毕后要换行 。3 标准错误3 标准错误 运行或编译Java程序时,各种错误信息输出到标准错误设备,即显示器。在Java中,标准错误设备用System.err表示。System.err属于PrintStream类对象。10.3 文件操作10.3 文件操作 在程序中要对磁盘文件或目录进行操作,首先要对文件或目录建立连接,为此Java提供了File类。File类也位于java.io包中,但不是流类,而是专门用来管理磁盘文件和目录。 一个File类对象表示一个磁盘文件或目录,其对象属性中包含了文件或目录的相关信息,如名称、长度、所含文件个数等,其方法可以完成对文件或目录的常用管理操作,如创建、删除等。 1 建立File对象1 建立File对象File类提供了3个不同的构造方法 : File(String path) String类参数path指定所建对象对应的磁盘文件名或目录名及其路径名。 File(String path, String name) 此构造方法中的参数path表示文件或目录的路径,参数name表示文件或目录名。 File(File dir, String name) 此构造方法中的参数dir表示一个磁盘目录对应的File对象,参数name表示文件名或目录名。 2 File对象的属性和操作2 File对象的属性和操作 public String getName():得到文件名 public String getPath():得到文件路径 public boolean exists():判断文件或目录是否存在 public long length():返回文件的字节数 public boolean canRead():返回当前文件是否可读 public boolean canWrite():返回当前文件是否可写 public boolean equals(File file):比较文件或目录 public boolean isFile():检测是否是文件 public boolean isDirectiry():检测是否是目录 public boolean renameTo(File file):重命名文件 public void delete():删除文件 FileOutputStream流类FileOutputStream流类FileOutputStream流类的构造方法有两个: FileOutputStream(String fileName): 参数fileName表示带路径的磁盘文件名。 FileOutputStream(File file): 参数file表示为磁盘文件所建立的File对象名 Java实例—以字节流方式写入文件 Java实例—以字节流方式写入文件 import java.io.*; public class File2{ public static void main(String[] args) throws IOException{ char ch; File file1=new File(“d:\\newFile.txt”); //新建一个文件 try{ FileOutputStream fout= new FileOutputStream(file1); System.out.println("输入任一字符串,以?结束"); ch= (char) System.in.read(); while (ch !='?'){ fout.write(ch); ch=(char) System.in.read(); } fout.close(); }null catch (FileNotFoundException e) { System.out.println(e);} catch (IOException e) { System.out.println(e);} } } FileInputStream流类FileInputStream流类FileInputStream类的构造方法有两个: FileInputStream(String fileName): 参数fileName表示带路径的磁盘文件名。 FileInputStream(File file): 参数file表示为磁盘文件所建立的File对象名 。Java实例—以字节流方式读磁盘文件 Java实例—以字节流方式读磁盘文件 import java.io.*; public class File3{ public static void main(String[] args) throws IOException{ int ch; File file1=new File(“d:\\newFile.txt"); try{ FileInputStream fin= new FileInputStream(file1); System.out.println("文件中的信息为:"); ch= fin.read(); while (ch !=-1){ System.out.print((char)ch); ch =fin.read(); } fin.close(); } nullcatch (FileNotFoundException e) { System.out.println(e); } catch (IOException e) { System.out.println(e); } } } DataOutputStream流类DataOutputStream流类 使用DataOutputStream类向文件中写入各种类型数据的操作步骤是: 为磁盘文件建立File类对象; 为该File对象建立FileOutputStream类流对象,建立其与磁盘文件的连接; 为该FileOutputStream类对象建立DataOutputStream类对象,利用DataOutputStream类的writeInt(),writeFloat(),writeDouble(),writeBoolean()等方法分别向文件中写入整型、单精度型、双精度型、布尔型等数据; 写入操作完成后,利用close()方法将流关闭,断开与磁盘文件的联系。 Java实例—向磁盘文件写入各类数据Java实例—向磁盘文件写入各类数据import java.io.*; public class File4 { public static void main(String[] args) { int ch; InputStreamReader iin=new InputStreamReader(System.in); BufferedReader bin =new BufferedReader(iin); File file1=new File(“d:\\dataFile.txt"); try { FileOutputStream fout= new FileOutputStream(file1); DataOutputStream dout =new DataOutputStream(fout); System.out.println(" 输入整数"); int i=Integer.parseInt(bin.readLine()); System.out.println(" 输入浮点数"); Java实例——(续)Java实例——(续) float f=Float.parseFloat(bin.readLine()); System.out.println(" 输入布尔量"); boolean b=new Boolean(bin.readLine()).booleanValue(); dout.writeInt(i); dout.writeFloat(f); dout.writeBoolean(b); dout.close(); } catch (FileNotFoundException e) { System.out.println(e);} catch (IOException e) { System.out.println(e);} } } 例--从磁盘文件读取各类数据 例--从磁盘文件读取各类数据 import java.io.*; public class File5 { public static void main(String[] args) throws IOException { int ch; File file1=new File(“d:\\lianxi\\dataFile.txt"); File file2=new File(“d:\\lianxi\\outFile.txt"); try { FileInputStream fin= new FileInputStream(file1); DataInputStream din =new DataInputStream(fin); int i=din.readInt(); float f=din.readFloat(); boolean b=din.readBoolean(); din.close();nullFileOutputStream fout= new FileOutputStream(file2); DataOutputStream dout =new DataOutputStream(fout); dout.writeInt(i); dout.writeFloat(f); dout.writeBoolean(b); dout.close(); System.out.println("整数:"+i); System.out.println("浮点数:"+f); System.out.println("布尔量:"+b); } catch (FileNotFoundException e) { System.out.println(e);} catch (IOException e) { System.out.println(e);} } }Writer和ReaderWriter和Reader 以字符流方式向文件写入或从文件中读取数据,可以使用Writer和Reader类及其子类。 Writer和Reader类都是抽象类,不能建立它们的对象,所以只能通过它们子类对象对文件进行操作。常用的Writer类的子类包括FileWriter类和BufferedFileWriter类。 FileWriter类构造方法如下: FileWriter(String fileName): 参数fileName表示带路径的磁盘文件名。 FileWriter(File file): 参数file表示为磁盘文件所建立的File对象名。 注:使用FileWriter进行文件操作时,为了减少磁盘读写次数,常常使用具有缓冲功能的BufferedWriter类。 Java实例—以字符流方式写入文件 Java实例—以字符流方式写入文件 import java.io.*; public class File8 { public static void main(String args[]) throws Exception { InputStreamReader iin =new InputStreamReader(System.in); BufferedReader br=new BufferedReader(iin); FileWriter fw1=new FileWriter(“d:\\dataFile.txt"); BufferedWriter bw = new BufferedWriter(fw1); String s; while (true){ System.out.print("输入一个字符串:"); System.out.flush(); s=br.readLine(); if (s.length()==0) break; bw. write(s); bw.newLine(); } bw.close(); } }例--以字符流方式读取文件 例--以字符流方式读取文件 public class File9 { public static void main(String args[]) throws Exception { FileReader fr1 = new FileReader("c:\\jdk1.3\\example\\dataFile.txt"); BufferedReader br1 = new BufferedReader(fr1); BufferedWriter bw1 = new BufferedWriter( new FileWriter("c:\\jdk1.3\\example\\targetFile.txt")); int lineNum=0; String s=br1.readLine();null while (s != null) { lineNum++; bw1.write(String.valueOf(lineNum)); bw1.write(" "); bw1.write(s); bw1.newLine(); s=br1.readLine(); } bw1.close(); } }例--以字符流方式向显示器输出 例--以字符流方式向显示器输出 import java.io.*; public class File11 { public static void main(String args[]) throws Exception { FileReader fr1 = new FileReader(“d:\\dataFile.txt"); BufferedReader br1 = new BufferedReader(fr1); BufferedWriter bw1 = new BufferedWriter( new OutputStreamWriter(System.out)); int lineNum=0; String s=br1.readLine();nullwhile (s != null) { lineNum++; bw1.write(String.valueOf(lineNum)); bw1.write(" "); bw1.write(s); bw1.newLine(); s=br1.readLine(); } bw1.close(); } } nullimport java.io.*; public class TestFileStream{ public static void main(String[] args){ int b=0; FileInputStream in=null; try{ in=new FileInputStream("d:\\lianxi\\File5.java"); }catch(FileNotFoundException e){ System.out.println("找不到文件"); System.exit(-1); } try{ long num=0; while((b=in.read())!=-1){ System.out.print((char)b); num++; } in.close(); System.out.println(); System.out.println("共读取了"+num+"个字节"); }catch(IOException e1) { System.out.println("文件读取错误"); System.exit(-1); }}}nullimport java.io.*; public class TestFileReader{ public static void main(String[] args){ FileReader fr=null; int c=0; try{ fr=new FileReader("d:\\lianxi\\TestFileReader"); int ln=0; while((c=fr.read())!=-1){ System.out.print((char)c); } fr.close(); }catch(FileNotFoundException e){ System.out.println("找不到指定文件"); }catch(IOException e){ System.out.println("文件读取错误"); }}} import java.io.*; public class TestFileWriter{ public static void main(String[] args){ FileWriter fw=null; try{ fw=new FileWriter(“d:\\lianxi\\a.txt”); for(int c=0;c<=99;c++){ fw.write(c); } fw.close(); }catch(IOException e1){ e1.printStackTrace(); System.out.println(“文件写入错误”); System.exit(-1); } }}import java.io.*; public class TestFileWriter{ public static void main(String[] args){ FileWriter fw=null; try{ fw=new FileWriter(“d:\\lianxi\\a.txt”); for(int c=0;c<=99;c++){ fw.write(c); } fw.close(); }catch(IOException e1){ e1.printStackTrace(); System.out.println(“文件写入错误”); System.exit(-1); } }}
本文档为【第10章】,请使用软件OFFICE或WPS软件打开。作品中的文字与图均可以修改和编辑, 图片更改请在作品中右键图片并更换,文字修改请直接点击文字进行修改,也可以新增和删除文档中的内容。
该文档来自用户分享,如有侵权行为请发邮件ishare@vip.sina.com联系网站客服,我们会及时删除。
[版权声明] 本站所有资料为用户分享产生,若发现您的权利被侵害,请联系客服邮件isharekefu@iask.cn,我们尽快处理。
本作品所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用。
网站提供的党政主题相关内容(国旗、国徽、党徽..)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。
下载需要: 免费 已有0 人下载
最新资料
资料动态
专题动态
is_286651
暂无简介~
格式:ppt
大小:159KB
软件:PowerPoint
页数:0
分类:互联网
上传时间:2012-02-28
浏览量:5