实验指导书:实验9 Java输入输出流
实验9 Java输入输出流
山西大学计算机与信息技术学院实验报告姓名学号专业班级课程名称 Java实验实验日期成绩指导教师批改日期实验名称实验9 Java的输入输出流●实验目的1. 理解I/O流的概念,掌握其分类2. 掌握文本文件读写、二进制文件读写●实验内容1. 分别使用FileWriter 和BufferedWriter 往文件中写入1万个随机数,比较用时的多少?(用时采用方法System.currentTimeMillis())求时间差;使用:FileWriter程序源代码程序运行结果贴图使用:BufferedWriter程序源代码程序运行结果贴图2.课本P547,19.2 :编写一个文件,如果文件Exercise 19_2.dat 不存在,就创建一个名为Exercise 19_2.txt的文件。
向这个文件追加新数据。
使用二进制I/O将100个随机生成的整数写入这个文件中。
程序源代码程序运行结果贴图3.课本P547 19.3:(对二进制数据文件中的所有数据求和)假设已经使用DataOutputStream中的writeInt(int)创建一个名为Exercise 19_3.dat的二进制数据文件,文件包含数目不确定的整数,编写一个程序来计算这些整数的总和。
程序源代码程序运行结果贴图4.在文本文件bigbook.txt中包含有很长篇幅的英语短文,编写程序要求统计文件的所有短文中包含英文字母“A”的个数,并显示统计的时间。
程序源代码程序运行结果贴图5.编写一个Java应用程序,给当前的类所在的文件ReadExample.java添加行号拷贝到另一个文件temp.text。
程序源代码程序运行结果贴图P547 19.5(将对象和数组存储在文件中)编写一个程序,向一个名为Exercise19_5.dat的文件中存储一个含5个int值1,2,3,4,5的数组,存储一个表示当前时间的Date对象,存储一个double值5.5程序源代码程序运行结果贴图P548 19.12(组合文件)编写一个工具程序,使它能够用下面的命令,将文件组合在一起构成一个新文件:java Exercise19_12 SourceFile1…SourceFilen TargetFile这个命令将 SourceFile1,…,SourceFilen合并为TargetFile。
java 输入输出流实验
}
catch(Exception exp){}
clip.start();
voiceWord.setEnabled(true);
}
}6.实验指导
(1)BufferedReader对象调用readLine方法可读取文件中的一行内容。
catch(IOException exp){}
}
}
public void run()
{
voiceWord.setEnabled(false);
try{
if(clip!=null)
{
clip.close();
}
clip=AudioSystem.getClip();
File voiceFile=new File(showWord.getText().trim()+".wav");
add(pCenter,BorderLayout.CENTER);
menubar=new JMenuBar();
menu=new JMenu("帮助");
help=new JMenuIter("关于学单词");
help.addActionListener(this);
menu.add(help);
menubar.add(menu);
FileReader类是Reader的子类,该类创建的对象称为文件字符输入流。文件字符输入流按字符读取文件中的数据。FileReader流按顺序读取文件,只要不关闭流,每次调用读取方法时FileReader流就会依次读取文件中其余的内容,直到文件的末尾或流被关闭。
实验9 Java输入输出流
山西大学计算机与信息技术学院实验报告姓名学号专业班级课程名称 Java实验实验日期2013-12-4 成绩指导教师批改日期实验名称实验9 Java的输入输出流●实验目的1. 理解I/O流的概念,掌握其分类2. 掌握文本文件读写、二进制文件读写●实验内容1. 分别使用FileWriter 和BufferedWriter 往文件中写入1万个随机数,比较用时的多少?(用时采用方法System.currentTimeMillis())求时间差;使用:FileWriter程序源代码package a;import java.io.*;public class Filewriter {public Filewriter(String string){}public static void main(String[] args)throws IOException {long time =System.currentTimeMillis();Filewriter filewriter=new Filewriter("text");int num;for(int i=0;i<=10000;i++){num=(int)Math.random()*10000;filewriter.write(num+" ");}filewriter.close();time=System.currentTimeMillis()-time;System.out.println("使用Filewriter所用时间:"+time+"um");}private void write(String string){}private void close(){}}程序运行结果贴图使用:BufferedWriter程序源代码package a;public class Bufferwriter {public Bufferwriter(String string){}public static void main(String[] args) {long time=System.currentTimeMillis();Bufferwriter a=new Bufferwriter("a.txt");int num;for(int i=0;i<=10000;i++){num=(int)Math.random()*10000;a.write(num+" ");}a.close();time=System.currentTimeMillis()-time;System.out.println("使用Bufferwriter所用时间:"+time+"um"); }private void write(String string){}private void close(){}}程序运行结果贴图2.课本P547,19.2 :编写一个文件,如果文件Exercise 19_2.dat 不存在,就创建一个名为Exercise 19_2.txt的文件。
Java输入输出流
Java输⼊输出流1.基础概念流:⼀组有序的数据结构,将数据从⼀个地⽅带到另⼀个地⽅。
根据数据流向的不同,可以分为输⼊流和输出流。
Java程序通过流完成输⼊/输出,所有的输⼊/输出都以流的形式处理。
(数据流是Java进⾏I/O操作的对象)1. 按照流的⽅向主要分为输⼊流和输出流两⼤类。
2. 数据流按照数据单位的不同分为字节流和字符流。
3. 按照功能可以划分为节点流和处理流。
数据流处理流程数据流的处理只能按照数据序列的顺序来进⾏,即前⼀个数据处理完之后才可处理后⼀个数据。
数据流以输⼊流的形式被程序获取,再以输出流的形式输出到其他设备。
输⼊/输出流模式如下:Java流相关的类都封装在java.io包中,且每个数据流都是⼀个对象。
1-输⼊流所有输⼊流都是InputStream抽象类(字节输⼊流)和Reader抽象类(字符输⼊流)的⼦类。
InputStream类的层次结构及常⽤⽅法如下:2-输出流所有输出流类都是OutputStream抽象类(字节输出流)和Writer抽象类(字符输出流)的⼦类。
OutputStream类的层次结构及常⽤⽅法:注:从本质上来讲,写数据(即输出)的时候,字节也好,字符也好,本质上都是没有标识符的,需要去指定编码⽅式。
但读数据的时候,如果我们需要去“看数据”,那么字节流的数据需要指定字符编码⽅式,这样我们才能看到我们能识别的字符(否则乱码);⽽字符流,因为已经选择好了字符编码⽅式,通常不需要再改了2.Java系统流Java程序运⾏时⾃带有⼀个系统流(对应类ng.System)。
该类封装了Java程序运⾏时的三个系统流(作⽤域为public和static):1. System.in:标准输⼊流,默认设备为键盘2. System.out:标准输出流,默认设备为控制台。
3. System.err:标准错误流,默认设备是控制台。
3.Java File(⽂件操作类)File类是Java.io包中唯⼀代表磁盘⽂件本⾝的对象(File类不能访问⽂件内容本⾝,需使⽤输⼊/输出流访问)File类的三种构造⽅法:1. File(String path):path可为⽬录/⽂件,File对象标识的就是⽬录/⽂件为⽂件时idea中默认路径为⼯程路径2. File(String path, String name):path是路径,name是⽂件名3. File(File dir, String name):dir是路径对象,name是⽂件名File类两个常⽤常量如下:1. public static final String pathSeparator:分隔连续多个路径字符串的分隔符(win下为;)2. public static final String separator:分隔同意路径字符串中的⽬录(win下为/)注:win中⽂件⽬录D:\xxx\xx,Java中使⽤时\应为/或\File类常⽤⽅法如下:通过遍历⽬录可以在指定的⽬录中查找⽂件或显⽰所有⽂件列表,有如下两种重载形式1. String[] list() 返回File对象表⽰⽬录中所有⽂件和⼦⽬录名称的字符串数组(null)eg.String path = "D:/IdeaProject/";File ff = new File(path);String[] FileList = ff.list();for(String str: FileList){System.out.println(str + (new File(path, str).isFile()? "⽂件": "⽂件夹"));System.out.println(str + "字节长度为" + (new File(path, str).length()));}2. String[] list(FilenameFilter filter) 返回数组中仅包含filter过滤器的⽂件和⽬录(null则接受所有名称)注:需先实现java.io.FilenameFilter接⼝,然后将过滤类传递给list⽅法(FileStream)@Override public boolean accept(File dir, String name) { return name.endsWith(".idea") || name.endsWith(".txt"); }也可在list中直接实现接⼝String[] filterList = ff.list(new FilenameFilter() { @Override public boolean accept(File dir, String name) { return name.endsWith(".idea") || name.endsWith(".txt"); } });eg.String[] filterList = ff.list(new FileStream());for(String str: filterList){System.out.println(str + (new File(path, str).isFile()? "⽂件": "⽂件夹"));System.out.println(str + "字节长度为" + (new File(path, str).length()));}4.Java动态读取⽂件内容⽂件的输⼊和输出主要通过Scanner类从⽂件中读取⽂本数据;PrintWriter类向⽂本写⼊数据PrintWriter output = new PrintWriter(file);Scanner input = new Scanner(file);使⽤try-with-resources⾃动关闭资源AutoCloseable⼦类型(Scanner,PrintWriter)资源有close⽅法,使⽤完的资源close以防⽌内存泄漏。
JavaIO流(输入输出操作)
JavaIO流(输⼊输出操作)Java中执⾏输出和输⼊操作,需要通过IO流。
例如最常见的System.out.println()就是⼀个输出流。
IO流的类⽐较多,但核⼼体系就是由File、 InputStream 、OutputStream、Reader、Writer和Serializable(接⼝)组成的,后续会⼀⼀详细说明。
I/O流基础概念按照流的⽅向分为输⼊流(InputStream)与输出流(OuputStream):输⼊流:只能读取数据,不能写⼊数据。
输出流:只能写⼊数据,不能读取数据。
因为程序是运⾏在内存中,以内存⾓度来理解输⼊输出概念,如下:可以看到输⼊与输出是⼀个相对概念,数据写⼊⽂件,对于程序来说是输出流,对⽂件来说是输⼊流。
但⼀般是以程序作为中⼼,所以从程序写⼊数据到其他位置,则是输出流,将数据读⼊程序中则是输⼊流。
简单的说就是:读取数据就是输⼊流,写⼊数据就是输出流。
按照处理的数据单位分为字节流和字符流字节流:操作的数据单元是8位的字节。
InputStream、OutputStream作为抽象基类。
字符流:操作的数据单元是字符。
以Writer、Reader作为抽象基类。
字节流可以处理所有数据⽂件,若处理的是纯⽂本数据,建议使⽤字符流。
IO流中的三类数据源基于磁盘⽂件:FileInputStream、FileOutputSteam、FileReader、FileWriter基于内存:ByteArrayInputStream ByteArrayOutputStream(ps:字节数组都是在内存中产⽣)基于⽹络:SocketInputStream、SocketOutputStream(ps:⽹络通信时传输数据)根据流的作⽤可分为节点流和处理流节点流:程序直接与数据源连接,和实际的输⼊/输出节点连接;处理流:对节点流进⾏包装,扩展原来的功能,由处理流执⾏IO操作。
处理流的作⽤和分类:处理流可以隐藏底层设备上节点流的差异,⽆需关⼼数据源的来源,程序只需要通过处理流执⾏IO操作。
Java输入与输出实验报告
实验报告课程名称: Java语言程序设计姓名:学号:班级:数学与计算机科学学院数学与计算机科学学院实验报告实验名称:输入与输出指导教师:日期:}private static void writeFile() throws Exception{String s;while(true){System.out.println("输入字符串:");System.out.flush();s=keyread.readLine();if(s.length()==0) break;bwrite.write(s);bwrite.newLine();}}public static void main(String args[]) throws Exception{String filename="E:\\project_java\\src\\file";file=new File(filename);if(!file.exists()){System.out.println("文件不存在");return;}fwrite=new FileWriter(file);bwrite=new BufferedWriter(fwrite);keyread=new BufferedReader(new InputStreamReader(System.in));writeFile();keyread.close();bwrite.close();fread=new FileReader(file);bread=new BufferedReader(fread);readFile();bread.close();}}第2题代码:import java.io.*;public class MyFile{public static void main(String args[]) throws IOException {String filename="E:\\project_java\\src\\file";File file=new File(filename);if(!file.exists()){System.out.println("文件不存在");return;}FileReader fread=new FileReader(file);BufferedReader bread=new BufferedReader(fread);String s=bread.readLine();while(s!=null) {System.out.println(s);s=bread.readLine();}fread.close();System.out.println("文件路径:"+file.getAbsolutePath());System.out.println("修改时间:"+stModified());System.out.println("文件长度:"+file.length());System.out.println("文件可读:"+file.canRead());System.out.println("文件可写:"+file.canWrite());}}实验结果第1题:第2题:。
第九章java输入输出流
OutputStream类
OutputStream类是所有输出数据流的父类,所以它也被实现成 抽象类,定义了所有输出数据流都具有的共同特性.
close( )关闭RandomAccessFile流,并释放资源。 getFilePointer()返回文件指针位置。 length()返回文件长度 read()从文件中读取一个字节的数据 readInt()从文件中读取一个int值(4个字节) readLine()读取一行 seek(long pos)定位参数pos在文件中指定的位置
OutputStream类的method
public void close( ) throws IOException 关闭与输出数据流的连系 public void flush( )throws IOException 将写入的数据确实送到接受数据的装置去.因为写入的数据通 常会先放到高速缓存(cache)里面,等到数量达到某一程度 时,用这个方法将强迫数据写进去. public void write(byte[ ] b)throws IOException 将数组b中的数据写入输出数据流
Writer类的method
public abstract void close()throws IOException 关闭与输出数据流的连接,但关闭之前会先调用一次flush
method.如果程序结束前没有调用这个method.则写入的数据 可能会流失调. public abstract void flush()throws IOEception 将写入的数据确实送到收据的装置去. public void write(char[] cbuf) 将cbuf数组中的字符一一 写入输出数据流
java_9输入输出流 课件
9.2.1 File类(重点内容)
File类提供独立于平台的文件处理方法。
File类的构造函数:(熟练掌握)
– public File(Sting path) ; – public File(Sting path , String name) ; – public File(File dir , teBoolean()方法,写出数据时用0表示false,用1 表示true; 用readBoolean()读入数据时,如果是0,则返回 false,非0返回true。
字符串写入文件(了解)
三种方法与字符串的写出有关: 1. 2. 3. writeBytes() :每个字符占一个字节。 writeChars() :每个字符占2个字节,即16位。 writeUTF() :以8位编码的方式写出字符串。
结构图(了解)
FileInputStream File InputStream
FilterInputStream
PipeInputStream SequenceInputStream
RandomAccessFile
Object OutputStream Reader Writer FileOutputStream
readLine() 读入一行字符。有四种行结束符:回车符'\r',
新行符'\n',回车符后紧跟新行符,或者文件结束。读入 的一行字符中包含行结束符。
RandomAccessFile常见写入方法
write + 不同的后缀:分别为Byte, Short,Int,Long, Float, Double, Char, Boolean。 对于用这些方法写出的数据,应该用带有相同后缀的读入 方法来读取数据,否则可能出错。
实验九 输入输出流
实验九输入输出流1.实验目的1、掌握字符输入、输出流的用法2、掌握使用Scanner类解析文件3、掌握Console流的使用2.实验内容1、根据附录里的源代码,按照注释要求,完成代码填空,使程序能够运行得出结果。
1) 实验1举重成绩单2) 实验2统计英文单词3) 实验3密码流4) 实验4学读汉字5)实验5 读取Zip文件2、设计编写程序完成以下任务。
1)修改实验2,要求按字典顺序输出全部不相同的单词。
2)参考实验3编写一个程序,程序运行时,要求用户输入的密码是:hello。
如果用户输入了正确的密码。
程序将输出“你好,欢迎你!”。
程序允许用户2次输入的密码不正确,一旦超过2次,程序将立刻退出。
3)在本机的磁盘系统中,找一个文件夹,利用File类的提供方法,列出该文件夹中的所有文件的文件名和文件的路径,执行效果如下:路径是xxx的文件夹内的文件有:文件名:abc.txt路径名:c:\temp\abc.txt--------------------------------------------文件名:def.txt路径名:c:\temp\def.txt知识点:File管理4)使用java的输入输出流将一个文本文件的内容读出并在控制台将文件中的内容打印出来。
(参考书上P289页)5)从控制台输入一串字符串,将该串字符串写入到磁盘某位置上的out.txt文件中去。
(参考教材P290页)6)使用java的输入输出流将一个文本文件的内容按行读取,每读一行就顺序添加行号,并写入到另一个文件中.7)定义一个Person类,包含姓名、年龄、身份证号码属性。
有一个带参数的构造方法用于对所有属性赋值,还有一个study的方法,里面只打印一条“我喜欢学习”的话。
写一个Test类,里面实例化若干个Person对象,并将这些对象写入到obj.txt文件中去。
8)创建c:/test.txt文件并在其中输入"hello world"创建一个输入流读取该文件中的文本并且把小写的l变成大写L再利用输出流写入到d:\test.txt中实现步骤:(1)在本地硬盘C盘下创建一个文件test.txt(2)创建一个包含main()方法的类,并在main中编写代码(3)运行代码并且测试结果实现过滤器的功能效果显示:知识点:IO字符流、String常用方法3.实验步骤略4.评分标准1.A——内容功能完善,编程风格好,人机接口界面好;2.B——内容功能完善,编程风格良好,人机接口界面良好;3.C——完成必做内容;4.D——能完成必做内容;5.E——未按时完成必做内容,或者抄袭(雷同者全部为E).参照书上实验按模版要求,将【代码】替换为Java程序代码,编写好完整的程序文档,最后运行得到的相关文件,把实验所得文件一起打包上交。
java。输入输出流
}
}
Fenxi.java
import java.util.*; public class Fenxi {
public static double getTotalScore(String s){
对全部高中资料试卷电气设备,在安装过程中以及安装结束后进行高中资料试卷调整试验;通电检查所有设备高中资料电试力卷保相护互装作置用调与试相技互术关,系电,力通根保1据过护生管高产线中工敷资艺设料高技试中术卷资0配不料置仅试技可卷术以要是解求指决,机吊对组顶电在层气进配设行置备继不进电规行保范空护高载高中与中资带资料负料试荷试卷下卷问高总题中体2资2配,料置而试时且卷,可调需保控要障试在各验最类;大管对限路设度习备内题进来到行确位调保。整机在使组管其高路在中敷正资设常料过工试程况卷中下安,与全要过,加度并强工且看作尽护下可1都关能可于地以管缩正路小常高故工中障作资高;料中对试资于卷料继连试电接卷保管破护口坏进处范行理围整高,核中或对资者定料对值试某,卷些审弯异核扁常与度高校固中对定资图盒料纸位试,置卷编.工保写况护复进层杂行防设自腐备动跨与处接装理地置,线高尤弯中其曲资要半料避径试免标卷错高调误等试高,方中要案资求,料技编试术写5、卷交重电保底要气护。设设装管备备置线4高、调动敷中电试作设资气高,技料课中并术3试、件资且中卷管中料拒包试路调试绝含验敷试卷动线方设技作槽案技术,、以术来管及避架系免等统不多启必项动要方方高式案中,;资为对料解整试决套卷高启突中动然语过停文程机电中。气高因课中此件资,中料电管试力壁卷高薄电中、气资接设料口备试不进卷严行保等调护问试装题工置,作调合并试理且技利进术用行,管过要线关求敷运电设行力技高保术中护。资装线料置缆试做敷卷到设技准原术确则指灵:导活在。。分对对线于于盒调差处试动,过保当程护不中装同高置电中高压资中回料资路试料交卷试叉技卷时术调,问试应题技采,术用作是金为指属调发隔试电板人机进员一行,变隔需压开要器处在组理事在;前发同掌生一握内线图部槽纸故内资障,料时强、,电设需回备要路制进须造行同厂外时家部切出电断具源习高高题中中电资资源料料,试试线卷卷缆试切敷验除设报从完告而毕与采,相用要关高进技中行术资检资料查料试和,卷检并主测且要处了保理解护。现装场置设。备高中资料试卷布置情况与有关高中资料试卷电气系统接线等情况,然后根据规范与规程规定,制定设备调试高中资料试卷方案。
Java程序设计与实践教程第九章 输入输出流
5
目录
• 当我们所创建的一个File类对象表示一个目 录的时候,我们可以使用下面两个方法获 取此目录下面的所有文件。 • pulic String[ ] list( ) • 用字符串形式返回目录下的所有文件。 • public File[ ] listFiles( ) • 用File对象形式返回目录下的所有文件。
9
文件字符输入流
• • • • • • • • • • FilReader(String name) 构造方法,参数文件名字符串表示。 FileReader(File name) 构造方法,参数文件对象。 int read( ) 文件对象调用此方法顺序读取文件中一个字符的内容,如果读到文件 末尾,返回-1。 int read(char b[ ]) 文件对象调用此方法顺序读取b.length个字符存储在数组b中,返回值 为实际读取的字符个数,如果读到文件末尾,返回-1。 int read(char b[ ],int off,int len) 参数len为此方法读取文件中字符的长度,off为读取过来的内容存放 在数组b中的起始位置,其它与上同。
7
文件字节输入流
• • • • • • • • • • FileInputStream(String name) 构造方法,参数文件名字符串表示。 FileInputStream(File name) 构造方法,参数文件对象。 int read( ) 文件对象调用此方法顺序读取文件中一个字节的内容,如果读到文件 末尾,返回-1。 int read(byte b[ ]) 文件对象调用此方法顺序读取b.length个字节存储在数组b中,返回值 为实际读取的字节个数,如果读到文件末尾,返回-1。 int read(byte b[ ],int off,int len) 参数len为此方法读取文件中字节的长度,off为读取过来的内容存放 在数组b中的起始位置,其它与上同。
Java输入输出流详解
通过数据流、序列化和文件系统提供系统输入和输出。
Java把这些不同来源和目标的数据都统一抽象为数据流。
Java语言的输入输出功能是十分强大而灵活的,美中不足的是看上去输入输出的代码并不是很简洁,因为你往往需要包装许多不同的对象。
在Java类库中,IO部分的内容是很庞大的,因为它涉及的领域很广泛:标准输入输出,文件的操作,网络上的数据流,字符串流,对象流,zip文件流。
1.1、Java流的分类按流向分:输入流: 程序可以从中读取数据的流。
输出流: 程序能向其中写入数据的流。
按数据传输单位分:字节流: 以字节为单位传输数据的流字符流: 以字符为单位传输数据的流按功能分:节点流: 用于直接操作目标设备的流过滤流: 是对一个已存在的流的链接和封装,通过对数据进行处理为程序提供功能强大、灵活的读写功能。
1.2、java.io常用类JDK所提供的所有流类位于java.io包中,都分别继承自以下四种抽象流类:InputStream:继承自InputStream的流都是用于向程序中输入数据的,且数据单位都是字节(8位)。
OutputSteam:继承自OutputStream的流都是程序用于向外输出数据的,且数据单位都是字节(8位)。
Reader:继承自Reader的流都是用于向程序中输入数据的,且数据单位都是字符(16位)。
Writer:继承自Writer的流都是程序用于向外输出数据的,且数据单位都是字符(16位)。
java语言的输入输出功能是十分强大而灵活的,美中不足的是看上去输入输出的代码并不是很简洁,因为你往往需要包装许多不同的对象。
在Java类库中,IO部分的内容是很庞大的,因为它涉及的领域很广泛:标准输入输出,文件的操作,网络上的数据流,字符串流,对象流,zip文件流....本文的目的是为大家做一个简要的介绍。
流是一个很形象的概念,当程序需要读取数据的时候,就会开启一个通向数据源的流,这个数据源可以是文件,内存,或是网络连接。
92java输入输出
简单的IO流(4)
DataInput/OutputStream
对于基本数据类型进行有格式的读写 DataInputStream实现了DataInput接口 readInt/Float/Char/Boolean/Long/Double() DataOutputStream实现了DataOutput接口 writeInt/Float/Char/Boolean/Long/Double()
FilterInputStream和FilterOutputStream使用了 代理(Proxy)模式,代理模式是代理对象对 被代理对象的一个功能不变的封装。
Decorator模式也是某个对象对另外一个对象 的功能包装,某些方法它直接转给包含对象, 而某些方法则由包装对象来提供,这样新包 装对象可以提供扩展的功能。
▪ 例如:文件Hello.txt采用了UTF8编码方式
new InputStreamReader ( new FileInputStream (“Hello.txt”),” UTF8”);
中写数据是输出流。 见下图流模型中四个抽象类,它们是流模
型的父类。
InputStream
字节输入流InputStream是抽象类,定义了字 节输入流的框架。
它的最重要的三个方法(输入流提供数据输 入): int read() int read(byte[] buffer) int read(byte[] buffer, int offset, int length)
FileOutputStream fos=new FileOutputStream( new File(“.\\out.txt”));
int c;
while((c=fis.read())!= -1)
Java输入输出流(一)——常用的输入输出流
Java输⼊输出流(⼀)——常⽤的输⼊输出流1.流的概念:在Java中,流是从源到⽬的地的字节的有序序列。
Java中有两种基本的流——输⼊流(InputStream)和输出流(OutputStream)。
根据流相对于程序的另⼀个端点的不同,分为节点流和过滤流。
(1)节点流:以特定源如磁盘⽂件、内存某区域或者线程之间的管道为端点的构造输⼊输出流,是⼀种基本的流。
(2)过滤流:以其他已经存在的流为端点构造的输⼊输出流。
根据流中的数据单位分为字节流和字符流。
(1)字节流:流中的数据是以8位字节为单位进⾏读写,以InputStream和OutputStream为基础类。
(2)字符流:流中的数据是以16为字符为单位进⾏读写,以Reader和Writer为基础类。
2.字节流InputStream和OutputStream是字节流的两个顶层⽗类,提供了输⼊流类和输出流类的通⽤API。
2.1 输⼊字节流InputStream基本⽅法:(1)基本读⽅法;: int read() int read(byte[] b) int read(byte[] b,int off,int len)(2) 关闭流:void close()(3) 返回输⼊流中还有多少可读字节 int available()(4) 跳过指定字节 long skip(long n)(5) 回读数据 boolean markSupported() void Mark(int readlimt) void reset()2.2 输出字符流OutputStream基本⽅法:(1)基本写⽅法:void write(int c) void write(byte[] b) void write(byte[] b,int off,int len)(2) 关闭流:void close()(3)q强制输出:void flush()3.字符流:Reader和Writer是字符流的顶层⽗类,字符流能够处理Unicode字符集中的所有字符。
java 输入输出流
第3章输入输出流1. 基本信息2. 输入输出流2.1 流在Java语言中,流(stream)是指一组有顺序的、有起点和终点的字节集合,是对数据传输的总称或抽象。
流分为输入流和输出流,读取文件内容,我们的操作要用输入流;保存文件则要用输出流;在网络中,也要用流来传输数据,发送数据要用输出流,接收数据要用输入流。
流是一个很形象的概念,当程序需要读取数据的时候,就会开启一个通向数据源的流,这个数据源可以是文件,内存,或是网络连接。
类似的,当程序需要写入数据的时候,就会开启一个通向目的地的流。
这时候你就可以想象数据好像在这其中“流”动一样。
2.2 流的分类Java中的流分为两种,一种是字节流,另一种是字符流,分别由四个抽象类来表示(每种流包括输入和输出两种所以一共四个):InputStream,OutputStream,Reader,Writer。
Java中其他多种多样变化的流均是由它们派生出来的。
图3-1 输入流2.3 文件操作通常,程序的运行需要从键盘、磁盘等设备输入数据,在屏幕、磁盘、打印机等设备显示或输出信息,这些操作都涉及输入输出处理。
我们对文件的操作流来实现,对文件实现增删查改,打开,保存,复制等操作。
而对于不同类型的文件,也要使用不同的流。
3. 字节输入输出流3.1 流的基本知识数据时可以传输的,流就是指一组有顺序的、有起点的和有终点的字节集合,是对数据传输的总称货抽像,换而言之,数据在两个对象之间的传输成为流。
在java API 中,java.Io 包主要包括流、读取器和写入器I/O 类、流输入和输出操作字节、读取器和写入器操作字符等内容,它完成了流的基本I/O 操作。
在java 程序中,流是程序内数据流动的路径,输入流从源向程序发送数据,输出流则使将数据发送到程序以外的目的地。
这些流依据不同的角度可以是字节流、文件流、过滤器流、字符流、缓冲流、压缩流。
Java.io 包内处理这些流的基本类是InputSream 、OuputStream 、Reader 和Writer 。
Java程序设计实验指导书(答案)
第Ⅰ部分:实验指导实验1:Java开发环境J2SE一、实验目的(1)学习从网络上下载并安装J2SE开发工具。
(2)学习编写简单的Java Application程序.(3)了解Java源代码、字节码文件,掌握Java程序的编辑、编译和运行过程。
二、实验任务从网络上下载或从CD-ROM直接安装J2SE开发工具,编写简单的Java Application程序,编译并运行这个程序。
三、实验内容1.安装J2SE开发工具Sun公司为所有的java程序员提供了一套免费的java开发和运行环境,取名为Java 2 SDK,可以从上进行下载。
安装的时候可以选择安装到任意的硬盘驱动器上,例如安装到C:\j2sdk1.4.1_03目录下。
教师通过大屏幕演示J2SE的安装过程,以及在Windows98/2000/2003下环境变量的设置方法。
2.安装J2SE源代码编辑工具Edit Plus教师通过大屏幕演示Edit Plus的安装过程,以及在Windows98/2000/2003操作系统环境下编辑Java 原程序的常用命令的用法。
3.编写并编译、运行一个Java Application程序。
创建一个名为HelloWorldApp的java Application程序,在屏幕上简单的显示一句话"老师,你好!"。
public class HelloWorldApp{public static void main(String[] args){System.out.println("老师,你好!");}}4.编译并运行下面的Java Application程序,写出运行结果。
1:public class MyClass {2:private int day;3:private int month;4:private int year;5:public MyClass() {6:day = 1;7:month = 1;8:year = 1900;9:}10:public MyClass(int d,int m,int y) {11:day = d;12:month = m;13:year = y;14:}15:public void display(){16:System.out.println(day + "-" + month + "-" + year);17:}18:public static void main(String args[ ]) {19:MyClass m1 = new MyClass();20:MyClass m2 = new MyClass(25,12,2001);21:m1.display();22:m2.display();23:}24:}运行结果:1-1-190025-12-2001实验2:Java基本数据类型一、实验目的(1)掌握javadoc文档化工具的使用方法。
Java实验 输入输出
实验八输入输出【开发语言及实现平台或实验环境】Windows2000 或XP,JDK1.6【实验目的】了解Java输入输出流类的基本使用方法。
【实验要求】掌握不同类型的输入输出流类,标准数据流、文件流、数据输入输出流、对象流等。
【实验内容】使用输入输出流类1. 使用标准数据流的应用程序标准数据流指在字符方式下(如DOS 提示符)程序与系统进行输入输出的方式,键盘和显示器屏幕是标准输入输出设备,数据输入的起点为键盘,数据输出的终点是屏幕,输出的数据可以在屏幕上显示出来。
(1)程序功能:将键盘上输入的字符在屏幕上显示出来。
(2)编写LX5_3.java 程序文件,源代码如下。
class LX5_3{public static void main(String[] args) throws java.io.IOException {byte buffer[]=new byte[10];System.out.println("从键盘输入不超过10 个字符,按回车键结束输入:");int count =System.in.read(buffer);//读取输入的字符并存放在缓冲区buffer中System.out.println("保存在缓冲区buffer 中元素的个数为:"+count);System.out.println("buffer 中各元素的值为:");for (int i=0;i<count;i++){System.out.print(" "+ buffer[i]);//在屏幕上显示buffer 元素的值}System.out.println();System.out.println("输出buffer 字符元素:");System.out.write(buffer, 0, buffer.length);}}(3)编译LX5_3.java 文件。
JAVA程序设计实验9:Java输入输出处理
实验报告课程名称JAVA程序设计学院电气与电子工程班级电1905-2 桌号实验者姓名学号实验日期年月日评分教师签名import java.io.InputStreamReader;import java.io.OutputStreamWriter;public class Shiyan9_0 {public static void main(String[] args) throws FileNotFoundException, IOException {try (FileInputStream inputStream = new FileInputStream(new File("d:\\Java\\a.txt"));InputStreamReader streamReader = new InputStreamReader(inputStream);BufferedReader reader = newBufferedReader(streamReader);FileOutputStream outputStream = new FileOutputStream(new File("d:\\Java\\output.txt"));OutputStreamWriter streamWriter = new OutputStreamWriter(outputStream);BufferedWriter writer = newBufferedWriter(streamWriter);){int count = 1;String line = null;while ((line = reader.readLine()) != null) {writer.write(count++ + ":"+line);writer.newLine();System.out.print(line);System.out.println(count);}}}}四、心得体会通过此次实验,让我对Java的了解更加的深入,每一个知识点都要正确运用,编写代码需要注意正确的格式,才能正确的运行。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
实验9Java输入输出流
一. 实验目的
1理解Java数据流的概念。
2了解Java输入输出流的层次结构。
3 了解Java文件的分类(文本文件,二进制文件)。
4 掌握字节流的基本使用方法。
5 掌握字符流的基本使用方法。
6 能够创建、读写、更新文件。
二. 实验内容
1 基本内容(实验前请及时熟悉如下相关内容)
1)FileInputStream类的应用
2)FileOutputStream类的应用
3)FileReader类的应用
4)FileWriter类的应用
5)对象的写入与读取
6)RandomAccessFile类
7)处理I/O异常
2 综合实验:
2.1 完成右图中的程序:用户输入文件名称,然后按下view按钮,在textArea中
把内容显示出来。
The user enters a file name in a text
field and clicks the Viewbutton; the file
is then displayed in a text area.
图 a The program displays the text
from a file in a text area.
2.2 给定一个文件目录,把文件目录中的所有word文档文件(后缀名为doc和docx)的名称存储到一个指定的文本文件中。
2.3 使用BufferedInputStream and BufferedInputStream实现一个文件拷贝的功能,并对可能的异常进行处理。
2.4 使用对象流ObjecctInputStream和ObjectOutputStream,在上次完成的华容道游戏的基础上添加如下的功能,把当前的游戏中的人物保存下来,下次可以载
入上次保存游戏人物状态,来继续前一次的游戏。
(思考:如何完成撤销和恢复的功能)。