Java实验指导io流.docx
- 文档编号:30036571
- 上传时间:2023-08-04
- 格式:DOCX
- 页数:15
- 大小:34.62KB
Java实验指导io流.docx
《Java实验指导io流.docx》由会员分享,可在线阅读,更多相关《Java实验指导io流.docx(15页珍藏版)》请在冰豆网上搜索。
Java实验指导io流
实验4:
输入输出流
一、实验目的
1.理解I/O流的概念,掌握其分类,掌握JavaI/O基本原理。
2.掌握对硬盘上的文件和目录进行操作的基本方法。
3.掌握FileInputStream、FileOutputStream类的基本使用方法。
4.掌握FileReader类、FileWriter类的使用。
5.掌握BufferedWriter类、BufferedWriter类的使用。
6.掌握RandomAccessFile类的使用。
7.掌握对象序列化的方法及ObjectInputStream、ObjectOutputStream类的基本使用方法。
二、实验要求
本次实验要求以Eclipse为开发平台。
三、实验内容与步骤
1.编写一个JavaApplication程序,实现如下的设计功能:
运行该程序可以列出当前目录下的所有文件。
import.*;
publicclasssy1{
publicstaticvoidmain(Stringargs[]){
Filefile=newFile("D:
\\");
();
File[]f1=();
for(inti=0;i<;i++){
if(f1[i].isDirectory()){
"dirctoryis"+f1[i].getName());
}
else{
"flieis"+f1[i].getName());
}
}
}
}
2.编写一个JavaApplication程序(文件名为),要求通过字节流从该文件中读取数据并写入到“”文件中去,实现该文件的复制。
import.*;
publicclassCopyFile{
publicstaticvoidmain(Stringargs[]){
inta;byte[]b="你好吗,逗比".getBytes();
try{
FileOutputStreamout=newFileOutputStream("D:
\\新建文件夹\\zzj\\src\\zzj\\");
(b);
();
}
catch(IOExceptione){
"error"+e);
}
}
}
3.编写一个程序(文件名为),将程序文件本身的内容每行开头添加上行号拷贝到另一个文件中。
import.*;
publicclassReadExample{
publicstaticvoidmain(Stringargs[]){
inta;char[]b=newchar[18];
try{
Filef=newFile("D:
\\新建文件夹\\zzj\\src\\zzj\\");
FileReaderin=newFileReader(f);
FileWriterout=newFileWriter("D:
\\新建文件夹\\zzj\\src\\zzj\\");
while((a=(b,0,18))!
=-1){
Strings=newString(b,0,18);
(b);
}
();
();
}
catch(IOExceptione){
"error"+e);
}
}
}
4.现在有如下格式的学生成绩单(文本格式):
姓名:
张三,数学72分,物理67分,英语70分.
姓名:
李四,数学92分,物理98分,英语88分.
姓名:
周五,数学68分,物理80分,英语77分.
要求按行读入成绩单,并在该行的后面加上该运动员的总成绩,然后再将该行写入到一个名字为的文件中。
请按如下的程序模板中的要求,将【代码】替换为Java程序代码,以完成该程序。
文件清单:
import.*;
publicclassFenxi{
publicstaticintgetTotalScore(Strings){
Stringregex="[^09]";;
import.*;
publicclassAnalysisResult{
publicstaticvoidmain(Stringargs[]){
FilefRead=newFile("");
FilefWrite=newFile("");
try{
Writerout=【代码1】;
importclasssy5{
publicstaticvoidmain(Stringargs[]){
Scannersc=newScanner;
Strings=();
try{
FileWriterout=newFileWriter("D:
\\新建文件夹\\zzj\\src\\zzj\\");
while(s=="exit"){
BufferedWriterbr=newBufferedWriter(out);
(s);
s=();
}
}
catch(IOExceptione){
"error"+e);
}
}
}
6.下面的程序使用随机流进行文件的保存和读取,请按如下的程序模板中的要求,将【代码】替换为Java程序代码,以完成该程序,使得程序在控制台的输出结果如下:
程序清单:
import.*;
publicclasstestRandom2{
publicstaticvoidmain(Stringargs[]){
try{
RandomAccessFilerf=newRandomAccessFile("","rw");
for(inti=0;i<10;i++){
(i);
(i*;
}
();
rf=newRandomAccessFile("","rw");
(【代码1】);
(47);
;
();
rf=newRandomAccessFile("","r");
for(inti=0;i<10;i++){
;
"Value"+()+":
"
+【代码2】);
}
rf.【代码3】;
}catch(IOExceptione){
}
}
}
import.*;
publicclasstestRandom2{
publicstaticvoidmain(Stringargs[]){
try{
RandomAccessFilerf=newRandomAccessFile("","rw");
for(inti=0;i<10;i++){
(i);
(i*;
}
();
rf=newRandomAccessFile("","rw");
(0);
(47);
;
();
rf=newRandomAccessFile("","r");
for(inti=0;i<10;i++){
;
"Value"+()+":
"
+());
}
();
}catch(IOExceptione){
}
}
}
7.下面的程序使用对象的序列化及对象流进行对象的保存和读取,请按如下的程序模板中的要求,将【代码】替换为Java程序代码,以完成该程序。
程序清单:
importclassSerializableDemo{
publicstaticvoidmain(Stringargs[])throwsException{
studentstu=newstudent(,"张三",20,"西华大学");
FileOutputStreamfout=newFileOutputStream("");
ObjectOutputStreamoout=new【代码1】;
下面的程序以字节为单位进行文件的读写操作,请阅读并分析该程序,上机运行查看效果,然后修改程序,使其以字符流方式进行文件的读写操作。
程序清单:
import.*;
import.*;
import.*;
publicclassreaderbyteextendsJFrameimplementsActionListener{
JButtonb1,b2,b3;
JTextFieldjt1;
JTextAreajt2;
readerbyte(){
setTitle("FileInputStream-FileOutputStream演示");
getContentPane().setLayout(newFlowLayout());
(true);
(450,350);
b1=newJButton("写入");
b2=newJButton("读取");
b3=newJButton("退出");
(this);
(this);
(this);
jt1=newJTextField(10);
jt2=newJTextArea(10,30);
(true);
(true);
JScrollPanejspa=newJScrollPane(jt2);
JPanelp1=newJPanel();
(newJLabel("请输入文件名:
"));
(jt1);
JPanelp2=newJPanel();
(newJLabel("文件内容:
"));
(jspa);
JPanelp3=newJPanel();
(b1);
(b2);
(b3);
getContentPane().add(p1);
getContentPane().add(p2);
getContentPane().add(p3);
setVisible(true);
}
publicvoidactionPerformed(ActionEventee){
if()==b3){
dispose();
(0);
}
if()==b1)
writer();
if()==b2)
reader();
}
voidwriter(){
Strings1,s2;
s1=().trim();
if("")){
(null,"没有输入文件名");
();
}else{
s2=().trim();
chars22[]=();
try{
FileOutputStreamfile=newFileOutputStream(s1);
for(inti=0;i<;i++)
(s22[i]);
();
}catch(IOExceptionie){
}
("");
("");
}
}
voidreader(){
Strings1,s2="";
s1=().trim();
if("")){
(null,"没有输入文件名");
();
}else
{
try{
FileInputStreamfile=newFileInputStream(s1);
intc;
while((c=())!
=-1)
s2=s2+(char)c;
(s2);
();
}catch(IOExceptionie){
}
}
("");
}
publicstaticvoidmain(Stringargs[]){
newreaderbyte();
}
}
import.*;
import.*;
import.*;
publicclassreaderbyteextendsJFrameimplementsActionListener{
JButtonb1,b2,b3;
JTextFieldjt1;
JTextAreajt2;
readerbyte(){
setTitle("FileInputStream-FileOutputStream演示");
getContentPane().setLayout(newFlowLayout());
(true);
(450,350);
b1=newJButton("写入");
b2=newJButton("读取");
b3=newJButton("退出");
(this);
(this);
(this);
jt1=newJTextField(10);
jt2=newJTextArea(10,30);
(true);
(true);
JScrollPanejspa=newJScrollPane(jt2);
JPanelp1=newJPanel();
(newJLabel("请输入文件名:
"));
(jt1);
JPanelp2=newJPanel();
(newJLabel("文件内容:
"));
(jspa);
JPanelp3=newJPanel();
(b1);
(b2);
(b3);
getContentPane().add(p1);
getContentPane().add(p2);
getContentPane().add(p3);
setVisible(true);
}
publicvoidactionPerformed(ActionEventee){
if()==b3){
dispose();
(0);
}
if()==b1)
writer();
if()==b2)
reader();
}
voidwriter(){
Strings1,s2;
s1=().trim();
if("")){
(null,"没有输入文件名");
();
}else{
s2=().trim();
chars22[]=();
try{
FileWriterfile=newFileWriter(s1);
for(inti=0;i<;i++)
(s22[i]);
();
}catch(IOExceptionie){
}
("");
("");
}
}
voidreader(){
Strings1,s2="";
s1=().trim();
if("")){
(null,"没有输入文件名");
();
}else
{
try{
FileReaderfile=newFileReader(s1);
intc;
while((c=())!
=-1)
s2=s2+(char)c;
(s2);
();
}catch(IOExceptionie){
}
}
("");
}
publicstaticvoidmain(Stringargs[]){
newreaderbyte();
}
}
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- Java 实验 指导 io