当前位置:文档之家› Java语言的输入输出

Java语言的输入输出


4 数据输入输出流
什么时候需要数据输入输出流? 文件流和缓冲区流的处理对象是字节或字节数 组,利用数据输入输出流可以实现对文件的不 同数据类型的读写. DataInputStream、DataOutputStream 一种较为高级的数据输入输出方式,除了字节和 字节数组,还可以处理int,float,boolean等类型. 还可以用readLine方法读取一行信息 可使用的方法: write,writeBoolean…,read,readByte…等
19
6 小结
在Java中有数据传输的地方都用到I/O流 (通常是文件,网络,内存和标准输入输出等) InputStream 和OutputStream是所有 I/O流的祖先(只有RandomAccessFile类是 ),read write 一个例外),read和write是它们最基本的方 法,读写单位是字节.
14
4 数据输入输出流
class datainput_output { public static void main(String args[]) throws IOException { FileOutputStream fos=new FileOutputStream(“a.txt”); DataOutputStream dos=new DataOutputStream (fos); try{ dos.writeBoolean(true); dos.writeByte((byte)123); dos.writeChar('J'); dos.writeDouble(3.141592654); dos.writeFloat(2.7182f); dos.writeInt(1234567890); dos.writeLong(998877665544332211L); dos.writeShort((short)11223); }finally{ dos.close(); }
输入流 输出流
file2.txt
11
import java.io.*; class filestream 7.3 static void main(String args[]) File I/O { public { try{ File inFile=new File(”file1.txt"); File outFile=new File(”file2.txt"); FileInputStream fis=new FileInputStream(inFile); FileOutputStream fos=new FileOutputStream(outFile); int c; while((c=fis.read())!=-1) fos.write(c); fis.close(); fos.close(); }catch(FileNotFoundException e) { System.out.println("FileStreamsTest: "+e); }catch(IOException e) { System.err.println("FileStreamsTest: "+e); 12 }}}
8
2 输入输出流的基类
flush():将缓冲区中的数据强制送出 close():关闭流. PrintStream类 println()不属于OutputStream类,它是 PrintStream类的子类,能提供复杂的输出 PrintStream类的方法有: write, flush, checkError,print, println,close. 其中println可以输出多种形式的数据.例如: println(String s), println(char c)等
数据流的运用
1 输入输出方法 2 输入输出流的基类 3 File I/O 4 数据输入输出流 5 文件的其它操作 6 小结
1
1 输入输出方法
什么是数据流 ?
文件, 文件

起 点
文件
程序
文件
程序
终 点
网络端点
数据流
终端 网络端点
数据流是指所有的数据通信通道 在java中有关流的操作使用java.io.* 出于安全的考虑,小应用不能实现文件I/O流
文件流的建立 FileInputStream in= new FileInputStream(fp); FileOutputStream out= new FileOutputStream(fp); 例:文件拷贝(注意要捕获文件异常) 输入流的参数是用于输入的文件名 输出流的参数是用于输出的文件名
file1.txt
4
1 输入输出方法
import java.io.*; class IOTest { public static void main(String args[]) {try { byte bArray[]=new byte[128]; System.out.println(“Enter something:”); System.in.read(bArray); System.out.print(“You entered:”); System.out.println(bArray); }catch(IOException ioe) { System.out.println(ioe.toString()); } } }
18
5 文件的其它操作
例: 获取当前目录下所有文件名和文件的尺寸: import java.io.*; public class file_size { public static void main(String args[]) { File files=new File(“.”); String file_list[]=files.list(); for(int i=0;i<file_list.length;i++) { File current_file=new File(file_list[i]); System.out.println(file_list[i]+ current_file.length()); } }
7
2 输入输出流的基类
方法read()提供了三种从流中读数据的方法. int read():读一个整数 int read(byte b[]):读多个字节到数组中 int read(byte,int off,int len); 属于OutputStream类的方法有: write(int b):将一个整数输出到流中 write(byte b[]):将数组中的数据输出到流中 write(byte b[], int off,int len):将数组b中从off 指定的位置开始len长度的数据输出到流中
16
4 数据输入输出流
DateLine(InputStream in)(计算字符和行数) { DataInputStream data= new DataInputStream(in); String currentLine; int lineCount=0; int charCount=0; while((currentLine=dataIn.readLine())!=null) { ++lineCount; charCount+=currentLine.length(); } return (charCount/(float)lineCount); }
2
1 输入输出方法
System类管理标准输入输出流和错误流 System.out: 把输出送到缺省的显示(通常是显示器) System.in 从标准输入获取输入(通常是键盘) System.err 把错误信息送到缺省的显示 每当main方法被执行时,就自动生成上述三 个对象
3
1 输入输出方法
public class ReadHello { public static void main(String args[]) { char inChar; System.out.println(“Enter a character:”); try{ inChar=(char)System.in.read(); System.out.println(“ “+ inChar); }catch(IOException e) { System.out.println(“Error reading from user”); } } }
13
4 数据输入输出流
数据流的建立 FileOutputStream fos= new FileOutputStream(”file2.txt")); DataInputStream dis= new DataInputStream(fos) 数据输出流可以是一个已经建立好的输入数据流 对象,例如网络的连结,文件等. 下面的例子显示如何利用数据输入输出流往文件 中写不同类型的数据
15
4 数据输入输出流
DataInputStream dis=new DataInputStream( new FileInputStream(”a.txt")); try{ System.out.println("\t "+dis.readBoolean()); System.out.println("\t "+dis.readByte()); System.out.println("\t "+dis.readChar()); System.out.println("\t "+dis.readDouble()); System.out.println("\t "+dis.readFloat()); System.out.println("\t "+dis.readInt()); System.out.println("\t "+dis.readLong()); System.out.println("\t "+dis.readShort()); }finally{dis.close();} }} Stream\datainputandoutput--->f5.bat
相关主题