nullnull第9章 输入和输出流本章重点
字节流的输入和输出
字符流的输入和输出
缓冲式的输入和输出
随机访问
文件对话框的方法
更多优质自考资料尽在百度贴吧自考乐园俱乐部(http://tieba.baidu.com/club/5346389)欢迎❤加入...欢迎❤交流...止不住的惊喜等着你.........文件*文件什么是文件?
文件可认为是相关记录或放在一起的数据的集合
文件一般存储在哪里?
JAVA程序一般通过什么去访问文件属性?
JAVA API :java.io.File 类
文件 *文件 文件*文件import java.io.File;
……
File file = new File(args[0]);
System.out.println("文件或目录是否存在:" + file.exists());
System.out.println("是文件吗:" + file.isFile());
System.out.println("是目录吗:" + file.isDirectory());
System.out.println("名称:" + file .getName());
System.out.println("路径: " + file.getPath());
System.out.println("绝对路径: " + file.getAbsolutePath());
System.out.println("最后修改时间:" + file.lastModified());
System.out.println(“文件大小:” + file.length()+ “ 字节”);
……
流*流流是指一连串流动的字符,是以先进先出方式发送信息的通道InputStreamOutputStream来自数据源的数据流流向目的地的数据流流*1. 输入流
通过打开一个到数据源(文件、内存或网络端口上的数据)的输入流,程序可以从数据源上顺序读取数据。
流流*2. 输出流
通过打开一个到目标的输出流,程序可以向外部目标顺序写数据。流流*流Java流的分类
字符流类(Character Streams)
字符流类用于向字符流读写16位二进制字符。
Reader Writer
字节流类(Byte Streams)
字节流类用于向字节流读写8位二进制的字节。一般地,字节流类主要用于读写诸如图象或声音等的二进制数据.
InputStream OutputStream
流*java.io中的基本流类:
说明:它们是抽象类,不能直接创建对象。
流*null*1. InputStream 方法
The three basic read methods:
int read()
int read( byte[] buffer)
int read( byte[] buffer, int offset, int length)
The other methods:
void close()
int available()
skip( long n)
null*2. OutputStream 方法
The three basic write methods:
void write( int c)
void write( byte[] buffer)
void write( byte[] buffer, int offset, int length)
The other methods:
void close()
void flush()
null*3. Reader Methods
The three basic read methods:
int read()
int read( char[] cbuf)
int read( char[] cbuf, int offset, int length)
The other methods:
void close()
boolean ready()
skip( long n)
null*4. Writer 方法
The three basic write methods:
void write( int c)
void write( char[] cbuf)
void write( char[] cbuf, int offset, int length)
void write( String string)
void write( String string, int offset, int length)
The other methods:
void close()
void flush()
文件的读写*文件的读写文本文件的读写
用FileInputStream读文本文件
用FileOutputStream写文本文件
用BufferedReader读文本文件
用BufferedWriter写文本文件
二进制文件的读写用FileInputStream 读文本文件*用FileInputStream 读文本文件引入相关的类
import java.io.IOException;
import java.io.InputStream;
import java.io.FileInputStream;
构造一个文件输入流对象
InputStream fileobject = new FileInputStream(“text.txt”);
用FileInputStream 读文本文件*用FileInputStream 读文本文件利用文件输入流类的方法读取文本文件的数据
fileobject.available(); //可读取的字节数
fileobject.read(); //读取文件的数据
关闭文件输入流对象
fileobject.close();
用FileInputStream 读文本文件*用FileInputStream 读文本文件 public static void main(String[] args) throws IOException {
int size;
InputStream fileobject = new FileInputStream(args[0] );
System.out.println(“可读取的字节数: "
+ (size = fileobject.available()));
char[] text = new char[200] ;
for (int count = 0; count < size; count++) {
text[count] = ((char) fileobject.read());
System.out.print(text[count]);
}
System.out.println("");
fileobject.close();
}使用 read( ) 方法一次读取一个字符,然后将字符存储在字符数组中并显示字符使用 available( ) 方法确定文件的大小用FileOutputStream 写文本文件*用FileOutputStream 写文本文件引入相关的类
import java.io.IOException;
import java.io.OutputStream;
import java.io.FileOutputStream;
构造一个文件输出流对象
OutputStream fos = new FileOutputStream("Text.txt");
用FileOutputStream 写文本文件*用FileOutputStream 写文本文件利用文件输出流的方法写文本文件
String str ="好好学习Java";
byte[] words = str.getBytes();
fos.write(words, 0, words.length);
关闭文件输出流
fos.close(); 用FileOutputStream 写文本文件*用FileOutputStream 写文本文件 public static void main(String[] args) {
try {
String str ="好好学习Java";
byte[] words = str.getBytes();
OutputStream fos = new FileOutputStream("Text.txt");
fos.write(words, 0, words.length);
System.out.println("Text文件已更新!");
fos.close();
} catch (IOException obj) {
System.out.println("创建文件时出错!");
}
} 使用 write( ) 方法将数据写入文件缓冲式输入输出*缓冲式输入输出当程序处理的文件按行组织,并且行不是定长时,用前面所述的流类实现很不方便.这时可采用缓冲式输入输出方式.
缓冲式输入:对于程序的输入请求,系统一次性输入足够多的内容放在内存缓冲区中,供程序以后的输入请求使用,待缓冲区的内容用完,再一次性输入足够多的数据.
缓冲式输出:对于程序的输出请求,系统先将内容暂存于缓冲区,待缓冲区满或输出结束,才将暂存与缓冲区中的内容输出到流的目的地.用BufferedReader 读文本文件*用BufferedReader 读文本文件引入相关的类
import java.io.FileReader;
import java.io.BufferedReader;
import java.io.IOException;
构造一个BufferedReader对象
FileReader fr=new FileReader("mytest.txt");
BufferedReader br=new BufferedReader(fr); 用BufferedReader 读文本文件*用BufferedReader 读文本文件利用BufferedReader的方法读取文本文件的数据
br.readLine(); //读取一行数据,返回字符串
关闭相关的流对象
br.close();
fr.close();;用BufferedReader 读文本文件*用BufferedReader 读文本文件演示:示例 4 /**创建一个FileReader对象.*/
FileReader fr=new FileReader("mytest.txt");
/**创建一个BufferedReader 对象.*/
BufferedReader br=new BufferedReader(fr);
/**读取一行数据.*/
String line=br.readLine();
while(line!=null){
System.out.println(line);
line=br.readLine();
}
/**流的关闭.*/
br.close();
fr.close(); 创建一个 FileReader 对象 创建一个 BufferedReader对象 用BufferedWriter 写文本文件*用BufferedWriter 写文本文件引入相关的类
import java.io.FileWriter ;
import java.io.BufferedWriter ;
import java.io.IOException;
构造一个BufferedWriter对象
FileWriter fw=new FileWriter("mytest.txt");
BufferedWriter bw=new BufferedWriter(fw);用BufferedWriter 写文本文件 *用BufferedWriter 写文本文件 利用BufferedWriter的方法写文本文件
bw.write (“hello”);
相关流对象的清空和关闭
bw.flush();
fw.close();用BufferedWriter 写文本文件*用BufferedWriter 写文本文件 /**创建一个FileWriter 对象*/
FileWriter fw=new FileWriter("mytest.txt");
/**创建一个BufferedWriter 对象*/
BufferedWriter bw=new BufferedWriter(fw);
bw.write("大家好!");
bw.write("我正在学习BufferedWriter。");
bw.newLine();
bw.write("请多多指教!");
bw.newLine();
bw.write("email: study@jb-aptech.com.cn");
bw.flush();
fw.close();创建一个 BufferedWriter对象 创建一个 FileWriter 对象 用DataInputStream 读二进制文件*用DataInputStream 读二进制文件引入相关的类
import java.io.FileInputStream;
import java.io.DataInputStream;
构造一个数据输入流对象
FileInputStream fis = new FileInputStream(“HelloWorld.class”);
DataInputStream dis = new DataInputStream(fis);
利用数据输入流类的方法读取二进制文件的数据
dis.readInt(); // 读取出来的是整数
dis.readByte(); // 读取出来的数据是Byte类型
数据输入流的关闭
dis.close (); //关闭数据输入流
用DataOutputStream 写二进制文件*用DataOutputStream 写二进制文件引入相关的类
import java.io. FileOutputStream;
import java.io. DataOutputStream;
构造一个数据输出流对象
FileOutputStream outFile = new FileOutputStream("temp.class");
DataOutputStream out = new DataOutputStream(outFile);
利用文件输出流类的方法写二进制文件
out.writeByte(1); //把数据写入二进制文件
数据输出流的关闭
out.close();
读写二进制文件演示*读写二进制文件演示 ……
FileInputStream fis
= new FileInputStream("ReadAndWriteBinaryFile.class");
DataInputStream dis = new DataInputStream(fis);
FileOutputStream outFile = new FileOutputStream("temp.class");
DataOutputStream out = new DataOutputStream(outFile);
int temp;
while ( (temp = dis.read()) != -1) {
out.write(temp);
}
fis.close();
out.close();
……文件随机读取 Random Access Files类*文件随机读取 Random Access Files类1. 创建随机文件:
myRAFile = new RandomAccessFile(
String name, String mode);
myRAFile = new RandomAccessFile(
File file, String mode);
例如:
new RandomAccessFile("farrago.txt", "r");
new RandomAccessFile("farrago.txt", "rw"); 文件随机读取 Random Access Files类*文件随机读取 Random Access Files类2. 常用方法:
文件对话框*文件对话框1、文件对话框用于完成对文件的使用,读取文件内容,数据保存等操作。
2、通过java.swing包中的类JFileChooser实现打开和保存文件对话框。
文件对话框 JFileChooser类*文件对话框 JFileChooser类1 、构造方法:
2、其它方法:
文件对话框 JFileChooser类*文件对话框 JFileChooser类3、设置筛选条件:即“指定文件类型” 使用FileFilter类
本文档为【第9章输入输出流】,请使用软件OFFICE或WPS软件打开。作品中的文字与图均可以修改和编辑,
图片更改请在作品中右键图片并更换,文字修改请直接点击文字进行修改,也可以新增和删除文档中的内容。
该文档来自用户分享,如有侵权行为请发邮件ishare@vip.sina.com联系网站客服,我们会及时删除。
[版权声明] 本站所有资料为用户分享产生,若发现您的权利被侵害,请联系客服邮件isharekefu@iask.cn,我们尽快处理。
本作品所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用。
网站提供的党政主题相关内容(国旗、国徽、党徽..)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。