java 第6次上机答案,io流的题目的 答案

合集下载

java的io面试题

java的io面试题

java的io面试题在Java编程中,IO(Input/Output)是一个非常重要的概念,用于处理与输入和输出相关的任务。

在面试中,考官通常会问及关于JavaIO的问题,以评估应聘者对Java基础知识的了解程度。

以下是一些常见的Java IO面试题及其答案:1. 什么是流(Stream)?回答:流是Java中处理IO操作的抽象概念。

它代表了数据的传输,可以是从源(输入流)到目标(输出流)的传输。

流分为字节流和字符流两种类型。

2. 字节流和字符流有什么区别?回答:字节流以字节为单位进行数据传输,适用于处理二进制数据或者字节流形式的文本数据。

字符流以字符为单位进行数据传输,适用于处理字符数据。

3. 什么是缓冲流(Buffered Stream)?回答:缓冲流是对字节流和字符流的包装,提供了缓冲功能以提高数据读写的效率。

它通过减少与磁盘之间的实际访问次数来改善性能。

4. 文件读写常用的类有哪些?回答:Java提供了多个类用于文件读写,常见的有File、FileInputStream、FileOutputStream、FileReader、FileWriter等。

5. 如何读取文件内容?回答:可以使用FileInputStream或FileReader来读取文件内容。

首先,通过创建相应的流对象,并指定要读取的文件路径。

然后,使用read方法读取数据,并将其存储到变量中,直到读取完整个文件。

6. 如何写入文件?回答:可以使用FileOutputStream或FileWriter来写入文件。

首先,通过创建相应的流对象,并指定要写入的文件路径。

然后,使用write 方法将要写入的数据以字节或字符的形式传递给流对象。

7. 如何在文件中查找特定内容?回答:可以读取文件的每一行,逐行进行匹配搜索。

可以使用BufferedReader的readLine方法来逐行读取文件内容,并使用String的contains方法判断是否包含目标内容。

io流面试题

io流面试题

io流面试题在Java开发中,IO流是一个常见而重要的概念。

在面试中,经常会被问到与IO流相关的问题。

了解和掌握IO流的概念、原理和常见的使用方式,对于成功通过面试至关重要。

本文将介绍一些常见的IO流面试题及其答案,帮助读者更好地准备面试。

1. 什么是IO流?IO流是指输入输出流,用于处理设备之间的数据传输。

在Java中,IO流可以用于读取文件内容、读取网络数据、向文件写入数据等。

2. Java中的IO流有哪些分类?Java中的IO流可以分为字节流和字符流。

- 字节流:以字节为单位进行数据的输入和输出,包括InputStream和OutputStream。

- 字符流:以字符为单位进行数据的输入和输出,包括Reader和Writer。

3. InputStream和OutputStream的主要作用是什么?InputStream是一个抽象类,用于读取字节流。

OutputStream也是一个抽象类,用于写入字节流。

它们是Java中所有输入流和输出流的基类,是IO操作的基础。

4. Reader和Writer的主要作用是什么?Reader是一个抽象类,用于读取字符流。

Writer也是一个抽象类,用于写入字符流。

它们可以处理Unicode字符,并且提供了专门用于字符处理的方法。

在读取或写入文本文件等操作中,常常使用字符流。

5. Java的IO流如何进行数据的读取和写入?Java的IO流提供了丰富的类和方法来进行数据的读取和写入。

对于输入流,通常可通过创建相关的InputStream或Reader对象,并使用read()或readLine()等方法来读取数据。

对于输出流,通常可通过创建相关的OutputStream或Writer对象,并使用write()等方法来写入数据。

6. 请解释一下Java中的File类的作用。

File类用于表示文件或目录的路径。

可以通过File类来操作文件或目录,比如创建文件、删除文件、判断文件/目录是否存在等。

java io流的用法 -回复

java io流的用法 -回复

java io流的用法-回复Java中的I/O流是一种用于输入和输出数据的机制。

它允许我们通过文件、网络、内存等不同的源和目标进行数据交换。

I/O流在编程中扮演着重要角色,被广泛应用于文件操作、网络通信和数据处理等场景中。

本文将一步一步回答有关Java I/O流的用法。

第一步:了解I/O流的概念和分类I/O流(Input/Output stream)是用于读取和写入数据的抽象机制。

在Java中,I/O流被分为两种类型:字节流和字符流。

字节流以字节为单位进行操作,适用于处理二进制数据和字节流媒体;而字符流以字符为单位进行操作,适用于处理文本数据。

字节流包括InputStream和OutputStream,其中InputStream用于从输入源读取数据,而OutputStream用于向输出目标写入数据。

常见的字节流包括FileInputStream、FileOutputStream和ByteArrayInputStream等。

字符流包括Reader和Writer,其中Reader用于从输入源读取字符数据,而Writer用于向输出目标写入字符数据。

常见的字符流包括FileReader、FileWriter和BufferedReader等。

第二步:使用字节流进行文件操作在使用字节流进行文件操作之前,首先需要创建一个文件。

可以使用File 类来创建或者引用一个文件对象,然后使用字节流进行读写操作。

读取文件的过程如下:1. 创建一个FileInputStream对象,并将要读取的文件作为参数传递给它。

例如:FileInputStream fis = new FileInputStream("example.txt");2. 创建一个字节数组用于存储读取的数据。

例如:byte[] data = new byte[1024];3. 调用FileInputStream对象的read()方法读取数据,并将读取的数据保存到字节数组中。

java基础IO流综合加习题

java基础IO流综合加习题

java基础IO流综合加习题1. IO流初学者在学习时都有⼀点迷糊,今天我们就讲讲IO流,希望通过讲解可以帮助⼤家2. IO流分为字节流,字符流,缓冲流.我们只要记住这三个就可以了. 1*字节流有:字节输⼊流(FileInputStream),字节输出流(FileOutputStream). 2*字符流有:字符输⼊流(FileReader),当让也有字符输出流(FileWriter); 字节流>>字节输⼊流,⽆⾮就是读取⽂件,初学者可以这么认为,把⽂档的读取出来放在缓冲区⾥(假设有这个缓冲区) >>字节输出流,也就是从这个假设的缓冲区⾥把读取出来 字符流>>也是⼀个道理.不过字符流只可以操作纯⽂本⽂件,他被开发出来就是⽤来操作⽂本⽂件的,什么是纯⽂本⽂件呢?? 纯⽂本⽂件也就是可以⽤记事本打开的⽂件. 后期,我们⽤到字符流的地⽅,⽆⾮就是操作这些纯⽂本⽂件,读取⽂件类容,在控制台打印啊,或者⼿写⼀个字符串录⼊到⽂档中等; ⼀:通过习题我们来认识字节流: 今天就和⼤家分享⼀下字节流拷贝⽂件.将会⽤上java基础阶段字节流的所有⽅法 /* *键盘输⼊⼀个⽂件夹地址,将其中的⽂件拷贝到另⼀个⽂件夹下.只拷贝.java⽂件 *分析:1.拿到这个题,我们还是⼤问题变成⼩问题解决 * (1)键盘输⼊>>>要判断是否是⼀个正确的⽂件夹路径>>我们可以把输⼊的字符串封装到File中⽤exists()判断是否存在返回值boolean类型 * (2)拿到正确的⽂件夹地址.我们开始选择⽤什么流拷贝呢,刚才我也说了字符流适合操作纯⽂本⽂件,所以我们遇到⾮纯⽂本的适合直接选择字节流 * (2_1)有⼈会问,那缓冲流呢??别急,其实缓冲流是服务字节流,字符流的,你可以认为他就⼀个8缸的汽车发动机,让汽车变飞机的快感,说道这⾥你也应该明⽩ * 缓冲流是⼲嘛的吧,也就是在字节字符流读取写⼊⽂件的时候速度加快⽤的,其实底层是⼀个缓冲区,8*1024个字节. * (3)拷贝⽂件夹的时候,⽂件夹中不可能只有⽂件也有⼦⽂件夹,我们这⾥要⽤到递归,天哪,好⿇烦啊,⼀会我们做代码你会发现,其实也就那样 * (4)那⽂件夹中⼜有⽂件夹⼜有⽂件,那我们怎么分辨呢? File给我提供了判断的⽅法:isFile()判断⽂件.isDirectory()判断⽂件夹 * (5)那获取到他们要讲他们先放在那⾥呢?把这些⽂件夹和⽂件放在数组⾥?可是没有这个⽅法啊,这个File给我提供了专门的数组File[] */ 来吧>开始做题 第⼀步:键盘输⼊>>>要判断是否是⼀个正确的⽂件夹路径private static File getScanner() { //键盘输⼊Scanner sc = new Scanner(System.in);System.out.println("请输⼊⽂件夹的路径:");while(true){String string = sc.nextLine(); //封装键盘输⼊的⽂件地址File file = new File(string); //判断⽂件夹地址是否存在if(!file.exists()){System.out.println("你输⼊的⽂件路径不存在,请重新输⼊:"); //判断是否为⽂件地址}else if(file.isFile()){System.out.println("你输⼊的是⽂件,不是⽂件夹,请重新输⼊:");}else{ //最后返回⽂件夹地址return file;}}} 第⼆步:拷贝private static void copy(File src, File dest) throws IOException {//拿到刚才输⼊的两个⽂件夹地址源⽂件地址为src 要接收的⽂件夹的地址为dest//把源⽂件夹中的⽂件,字⽂件夹存放到File数组中src.listFiles();⽅法获取File[] files = src.listFiles();//判断数组是否为空if(files!=null){//遍历数组for (File file : files) {//如果是⽂件并且以java结尾 geName()是拿到⽂件夹或者⽂件的名字字符串if(file.isFile() && file.getName().endsWith(".java")){//符合条件的复制//缓冲流来了啊记得加速的后⾯跟上我们的字节流,别装上了发动机不要车了啊//字节输⼊流对于初学者来说:可以认为读取⽂件到缓冲区BufferedInputStream bis = new BufferedInputStream(new FileInputStream(file));//字节输出流把缓冲区的内容拿出来给另外⼀个对象这⾥我们讲⼀下为什么在new File(这⾥存放的是⽂件地址) // 要接收的⽂件夹的地址为dest 加上⽂件的地址// E:\\dest \\xxx.java 拼接成⼀个完整的⽂件地址BufferedOutputStream bos = new BufferedOutputStream(new FileOutputStream(new File(dest,file.getName())));//这⾥建⼀个字节数组其实也是让⽂件拷贝的更加快⼀点byte[] by = new byte[1024*8];//索引拷贝结束了,没有了数组就返回-1;int len=0;while((len=bis.read(by))!=-1){//往⾥⾯写bos.write(by, 0, len);}//关流bos.close();bis.close();}else if(file.isDirectory()){//建⽴⼀个remove()⽅法判读⽂件夹中可包含java⽂件不包含⽂件夹不复制过来if(remove(file)){File newfile = new File(dest,file.getName());if(!newfile.exists()){//建⽴⽂件夹⽂件夹中的⽂件夹newfile.mkdirs();}copy(file, newfile);}}}}}private static boolean remove(File file) {File[] files = file.listFiles();//先判断⽂件夹是否为空为空返回falseif(files!=null){for (File file2 : files) {//底层⽂件夹中含有符合条件的⽂件返回trueif(file2.isFile() && file2.getName().endsWith(".java")){return true;//判断是否是⽂件夹 //底层是否有java⽂件}else if(file2.isDirectory() && remove(file2)){return true;}}}return false;}上⾯的代码可能⼀时理解起来⽐较难消化,时间原因,下次我更新⼀个⽐较详细的第三步main()⽅法public static void main(String[] args) throws IOException {File src = getScanner();File dest = getScanner();copy(src,dest);}字符流>>题⽬/** ⽂档中第⼀⾏与最后⼀⾏交换* 第⼆⾏与倒数第⼆⾏交换**/public static void main(String[] args) throws IOException {BufferedReader br = new BufferedReader(new FileReader("abc\\b.txt"));BufferedWriter bw = new BufferedWriter(new FileWriter("abc\\c.txt"));ArrayList<String> list = new ArrayList<>(); //字节流我们说了⽤len!=-1做索引 //⽂档有⼀个⽅法可以⼀⾏⼀⾏的读取,当然可以想在字节流那样读取String line=null;while((line=br.readLine())!=null){list.add(line);}br.close();//换⽂档中第⼀⾏与最后⼀⾏交换for (int i = 0; i<list.size()/2 ;i++) {String string = list.get(i); //只需要交换集合长度/2次list.set(i, list.get(list.size()-1-i));list.set(list.size()-1-i, string);}//遍历并且把字符串写到⽂件中for (String string : list) {bw.write(string);bw.newLine();} //关流bw.close();}今天就说这么多了,回头看我⾃⼰写的........我发初学IO的应该不知道我在说啥.下次⼀定来⼀个详细的,说真的IO流要细说,有的说的,不过⼤家记住IO在初级阶段⽆⾮就是操作⽂件夹⽂件,拷贝删除,写,读.字符流只读只写拷贝⾃⼰流,不要忘记缓冲流这个加速器.谢谢⼤家。

IO流_练习&面试题

IO流_练习&面试题
System.out.println(&quot;FileStreamsTest:&quot;+e);
}catch(IOException e){
System.out.println(&quot;FileStreamTest&quot;+e);
}
}
}
-----------------------------------------------------
A 位
B 字节
C 字符
D 文件
4.▁▁文件流类的 close 方法可用于关闭文件。
A FileOutputStream
B FileInputStream
C RandomAccessFile
D FileWrite
5.RandomAccessFile 类的▁▁方法可用于从指定流上读取整数。
对应于系统调用System.in和System.out。这样的两个流加上System.err统称为标准流,它们是在System类中声明putStream in
publicstaticPrintStream out
public static PrintStream err
java中有几种类型的流?JDK为每种类型的流提供了一些抽象类以供继承,请说出他们分别是哪些类?
答:字节流,字符流。
字节流继承于InputStream OutputStream,
字符流继承于Reader Writer。在java.io包中还有许多其他的流,主要是为了提高性能和使用方便。
public static void main(String[] args){

io流的面试题

io流的面试题

io流的面试题在Java编程中,IO流是一个非常重要的概念。

在面试过程中,经常会涉及到与IO流相关的问题。

本文将介绍一些常见的IO流面试题,并给出相应的解答。

以下是一些常见的问题和答案:1. 什么是IO流?IO流是用于处理输入输出的机制,它是Java程序与外部世界进行数据交换的方式。

输入流用于从外部读取数据,输出流用于向外部写入数据。

2. IO流的分类有哪些?IO流可以分为字节流和字符流。

字节流以字节为单位进行读写,而字符流以字符为单位进行读写。

字节流可以处理任意类型的数据,而字符流主要用于处理文本数据。

3. 文件读写时,常用的字节流和字符流是什么?常用的字节流是InputStream和OutputStream,常用的字符流是Reader和Writer。

它们都是抽象类,具体的实现类有很多,如FileInputStream、FileOutputStream、FileReader和FileWriter。

4. 如何使用字节流进行文件复制?使用字节流进行文件复制可以通过以下步骤实现:- 创建一个输入流对象,用于读取源文件;- 创建一个输出流对象,用于写入目标文件;- 使用循环读取字节,并将其写入输出流,直到读取到文件末尾;- 关闭输入流和输出流。

5. 如何使用字符流进行文件复制?使用字符流进行文件复制可以通过以下步骤实现:- 创建一个输入流对象,用于读取源文件;- 创建一个输出流对象,用于写入目标文件;- 使用循环读取字符,并将其写入输出流,直到读取到文件末尾;- 关闭输入流和输出流。

6. 什么是缓冲流?为什么要使用缓冲流?缓冲流是对字节流和字符流的包装,通过内部的缓冲区提高了读写的效率。

使用缓冲流可以减少对操作系统的IO次数,提高程序的性能。

7. 缓冲流的使用方法是什么?缓冲流的使用方法如下:- 创建一个字节流或字符流的对象;- 创建一个缓冲流的对象,将字节流或字符流对象作为参数传入;- 使用缓冲流来读写数据;- 关闭缓冲流,它会自动关闭内部的字节流或字符流。

io流面试题

io流面试题

io流面试题IO流是Java中用于实现输入输出操作的一种机制。

在面试中,经常会涉及到关于IO流的问题。

本文将结合实际面试题目,解答一些常见的IO流面试问题,以帮助读者更好地理解和掌握IO流。

一、什么是IO流?IO流是Input/Output流的缩写,是Java用于进行输入输出操作的一种机制。

它是对数据进行输入输出的抽象,将输入输出设备、文件等统一看作是一个流,通过流的读写操作来实现数据的传输。

二、IO流的分类在Java中,IO流分为两种类型:字节流和字符流。

1. 字节流字节流以字节为单位进行读写操作,它是输入输出的低级流。

字节流可以分为输入字节流和输出字节流。

输入字节流用于从输入源读取数据,输出字节流用于将数据写入到输出目的地中。

常见的字节流类包括InputStream、OutputStream及它们的子类。

2. 字符流字符流以字符为单位进行读写操作,它是建立在字节流的基础上的高级流。

字符流可以分为输入字符流和输出字符流。

输入字符流用于从输入源读取字符数据,输出字符流用于将字符数据写入到输出目的地中。

常见的字符流类包括Reader、Writer及它们的子类。

三、字节流与字符流的区别字节流与字符流在使用上有一些差别。

主要区别包括以下几点:1. 处理对象不同:字节流以字节为单位进行处理,处理的是图像、音频、视频等二进制数据。

字符流以字符为单位进行处理,处理的是文本数据。

2. 底层处理方式不同:字节流是直接操作底层的二进制数据,而字符流是先将字符转换为字节再进行操作。

3. 处理能力和运行效率:字符流在处理文本数据时更为方便,提供了一些高级的文本处理方法。

但是字符流的处理效率较字节流低,因为字符流需要进行字符编码和解码的过程。

四、常见的IO流类Java提供了丰富的IO流类库,下面介绍一些常见的IO流类。

1. FileInputStream和FileOutputStreamFileInputStream用于读取文件中的数据,FileOutputStream用于向文件中写入数据。

(完整版)IO流题目

(完整版)IO流题目

狂翔IT工作室IO流章节题目一.选择题1.java语言提供处理不同类型流的类的包是(D)a)java.sql b) java.util c) java.math d) java.io2.不属于java.io包中的接口的一项是(c)a)DataInput b) DataOutput c) DataInputStream d) ObjectInput3.java.io包中提供的用于筛选文件名的接口是(d)a)DataInput b) DataOutputStream c)RandomAccessFile d) FileNameFilter4.下列中,哪一个是filterInputStream类构造方法的有效参数ca)无参数b)OutputStream对象c) InputStream对象d)RandomAccessFile对象5. ByteArrayOutputStream将下列哪一项作为输出流 ca) 字符b)字节c)字节数组D)对象6. 下列流中哪一个使用了缓冲区技术AA.BuffereOutputStream B. FileInputStreamC. DataOutputStreamD.FileReader7. 下列哪个包中含有压缩文件输入流ZipInputStream类BA.java.ioB. java.util.zipC.java.util.jarD.java.awt8. 要在磁盘上创建一个文件,可以使用哪些类的实例A.FileB.FileOutputStreamC.RandomAccessFileD.以上都对9.下列字节输入流中,哪一个不能够被实例化BA.FileInputStreamB.FilterInputStreamC.ByteArrayInputStreamD.ObjectInputStream10. 能对读入字节数据进行java基本数据类型判断过滤的类是(C)A. PrintStreamB.DataOutputStreamC.DataInputStreamD.BuffereInputStream11. 使用下列哪一个类可以实现在文件的任意一个位置读写一个记录A.RandomAccessFileB.FileReaderC.FileWriterD.FileInputStream12.通常情况下,下列哪一个类的对象可以作为BufferedReader类的构造函数的参数A.InputStreamReaderB.PrintStreamC.OutputStreamReaderD.PrintWriter13. 若要创建一个新的含有父目录的目录,应该使用下列哪一个类的实例A.RandomAccessFileB.FileOutputStreamC.FileD.以上都对14. 流的概念是由以下哪个语言最先引的A.CB.C++C.JavaD.Basic15. 下列哪一个不属于计算机常用的外部设备A.显示器B.网络C.内存D.键盘16. 与InputStream流相对应的Java系统的标准输入对象是A.System.inB.System.outC.System.errD.System.exit()17. 下列File类的方法中,哪一个用于返回文件的相对的文件名A.getCanonicalPath()B.getAbsolutePath()C.getCanonicalFile()D.getAbsoluteFile()18. 下列哪个不属于j2sdk1.4 提供的新I/O功能A.内存映射B.文件锁定C.字符及编码D.阻塞I/O19.下列选项中,哪一个属于输出流A.从打印机流向控制器的数据流B.从键盘流向内存的数据流C.从内在流向控制器的数据流D.从内存流向网络的数据流20.FileOutputStream类的父类是()A.FileB.FileOutputC.OutputStreamD.InputStream 二.填空题1. Java的I/O流包括字节流、字符流、文件流、对象流和管道流2. 按照流的方向来分,I/O流包括输入和输出流3. 流是一个流动的数据从流向4. FileInputStream实现对磁盘文件的读取操作,在读取字符的时候,它一般与InputStreamReader 和BufferedReader 一起5. 向DataOutputStream对象dos 的当前集团处写入一个保存在变量f中的浮点数的语句是dos.writeDouble(f)6. java通过过滤流对I/O访问提供同步处理机制7. FileChannel类为磁盘文件映射入内存提供了一个通道8. 输入输出在计算机中有两个主要作用:采集数据和提供数据处理结果。

14.IO流作业

14.IO流作业

IO流作业一、填空题1.Java IO流可以分为和处理流两大类,其中前者处于IO操作的第一线,所有操作必须通过他们进行。

2.输入流的唯一目的是提供通往数据的通道,程序可以通过这个通道读取数据,方法给程序提供了一个从输入流中读取数据的基本方法。

3.read方法从输入流中顺序读取源中的单个字节数据,该方法返回字节值(0-255之间的一个整数),如果到达源的末尾,该方法返回。

4.Java系统的标准输入对象是System.in,标准输出对象有两个,分别是标准输出System.out和标准错误输出____________________。

5.Java IO体系中,____________________是字节输入流,不仅提供了存取所有Java基础类型数据(如:int,double 等)和String的方法,也提供了提供存取对象的方法。

6.Java IO体系中,____________________是字节输出流,提供了可以存取所有Java基础类型数据(如:int,double 等)和String的方法,但没有提供存取对象的方法。

7.____________是指将Java对象转换成字节序列,从而可以保存到磁盘上,也可以在网络上传输,使得不同的计算机可以共享对象。

二、选择题1. 使用Java IO流实现对文本文件的读写过程中,需要处理下列()异常。

(选择一项)A ClassNotFoundExceptionB. IOExceptionC. SQLExceptionD. RemoteException2. 在Java的IO操作中,()方法可以用来刷新流的缓冲。

(选择两项)A void release()B. void close()C. void remove()D. void flush()3. 在Java中,下列关于读写文件的描述错误的是()。

(选择一项)A Reader类的read()方法用来从源中读取一个字符的数据B. Reader类的read(int n )方法用来从源中读取一个字符的数据C. Writer类的write(int n)方法用来向输出流写入单个字符D. Writer类的write(String str)方法用来向输出流写入一个字符串4. 阅读下列文件定入的Java代码,共有()处错误。

IO流(JAVA)面试题

IO流(JAVA)面试题

IO流(Java)面试题一:IO流整体说明?用的是装饰模式,装饰模式有四个角色,分别是通用接口、本原、抽象装饰、具体装饰,因为是将本原聚合到了装饰中,所以可以将本原或装饰通过构造子注入到另一个装饰,多个装饰可以随意的组合,形成一个综合的功能对象。

io流分为输入流及输出流,输入流是文件到内存,输出流是内存到文件。

流分为低层流及高层流,在实例化高层流时必须通过构造子将低层流注入到高层流中。

输入流通用的方法是read(),read(char[]),read(byte[]),readline。

输出流的通用方法是write(int),write(byte[]),write[char[]],print("string")。

当读取一个文件时,对于以字节/字节数组,字符/字符数组读取的结束条件是!=-1,对于以字符串读取的结束条件是!=null。

对于有缓存的输出时,要想写入到文件必须flush或close。

二:输入字节流的体系结构?输入字节流的体系结构:InputStreamFileInputStreamFilterInputStreamObjectInputStreamDataInputStreamBufferedInputStream实现代码:--读一个字节int temp=fis.read();while(temp!=-1){System.out.print(temp);temp=fis.read();}--读一批字节byte[] bytes=new byte[1000];int result=fis.read(bytes);while(result!=-1){String temp=new String(bytes,0,result); result=fis.read(bytes);}三:输出的字节流体系结构?输出的字节流的体系结构:OutputStream FileOutputStreamFilterOutputStreame ObjectOutputStreamBufferedOutputStreamDataOutputStream PrintStream实现代码:int temp;fis.write(temp);byte temps[]=new byte[1000];fos.write(temps);四:输入的字符流体系结构?输入的字符流的体系结构:ReaderFileReaderInputStreamReader(将字节流转化字符流)BufferedReader(有缓存)实现代码:BufferedReader br=new BufferedReader(new InputStreamReader(System.in));String temp=br.readLine();while(temp!=null){temp=br.readLine();}五:输出的字符流体系结构?输出的字符流的体系结构:WriterFileWriterOutputStreamWriterBufferedWriterPrintWriter实现代码:fw.write(int)fw.write(char[])fw.write("string");六:PrintStream、BufferedWriter、PrintWriter的比较?PrintStream:属于字节流,即可以打印字节也可以打印数组写入文件不用close或flushe.printStackTrace()、System.out.println()都是它的实例。

io流java题目

io流java题目

关于I/O流的java题目描述:1: 编写程序,读取附件中的test.txt日志文件2: 用户输入服务名称,打印日志中该服务被调用了多少次如用户输入服务名queryByChannelType,则输queryByChannelType 调用XX 次.3:用户输入保存文件名称,把输出结果保存到指定文件. 如用户输入文件名exam1.txt,则把结果保存在exam1.txt文件通过标准:1.自行实现全部代码2.良好的编码风格,必要的注释;3.能成功运行,并将程序和执行结果都上传到SVN中4.程序中必须按照12章和16章的要求对异常进行了处理优秀标准1.程序设计简洁优雅,能高效率的完成工作2.除了必须的异常处理外,程序本身考虑了对各种异常情况和错误的处理考虑充分3.发挥你的想象,让这个程序更合理,更有趣。

提供更多的日志分析和输出功能。

创建一个I/O流工具类:/****/package ;import java.io.BufferedInputStream;import java.io.BufferedOutputStream;import java.io.BufferedReader;import java.io.BufferedWriter;import java.io.File;import java.io.FileInputStream;import java.io.FileOutputStream;import java.io.InputStreamReader;import java.io.OutputStreamWriter;import ng.StringUtils;import mons.logging.Log;import mons.logging.LogFactory;/*** 读写流* @author panwh**/public class Filecommon {private final static Log logger = LogFactory.getLog(Filecommon.class);private final static int BUFFER = 16 * 1024;/*** 一般文本文档的字符读写流* @param serverName 服务名* @param newfile 保存新文件全路径* @param oldfile 旧文件全路径*/public static void readChar(String serverName, String newfile, String oldfile) {// 读取文件test.txtFile readfile = new File(oldfile);File writefile = new File(newfile);// 定义可扩展字符StringBuilder sb = new StringBuilder();try {// 文本文档读写流一般用字符流,这里使用缓存字符流:一次性读取文件在缓存中,一次性写入文件。

AnjoyoJava06课后习题带答案

AnjoyoJava06课后习题带答案

AnjoyoJava06课后习题一、选择题:1.下面关于异常的说法正确的一项是()。

A、异常就是在程序的运行过程中所发生的不正常的事件,但它不会中断正在运行的程序。

B、Error类和Exception类都是Throwable类的子类。

C、Exception处理的是Java运行环境中的内部错误或者硬件问题,比如,内存资源不足、系统崩溃等。

D、Error处理的是因为程序设计的瑕疵而引起的问题或者外在的输入等引起的一般性问题,例如:在开平方的方法中输入了一个负数,对一个为空的对象进行操作以及网络不稳定引起的读取网络问题等。

2.引起RuntimeException异常的原因不包括下面哪一项()。

A、错误的类型转换B、试图从文件结尾处读取信息C、试图访问一个空对象D、数组越界访问3.引起IOException异常的原因不包括下面哪一项()。

A、试图从文件结尾处读取信息B、试图打开一个不存在或者格式错误的URL。

C、数学计算错误D、用Class.forName()来初始化一个类的时候,字符串参数对应的类不存在。

4.下面哪一项不是RuntimeException异常中的一类()。

A、ClassNotFoundException:无法找到需要的类文件异常B、NumberFormatException:数字转化格式异常C、IllgalArgumentException:非法参数值异常D、IllegalStateException:对象状态异常,如对未初始化的对象调用方法5.IOException异常不包括下面哪一项()。

A、EOFException:读写文件尾异常B、InterruptedException:线程中断C、SocketException:Socket通信异常D、MalformedURLException:URL格式错误异常6.下列关于try-catch-finally处理异常描述有误的一项是()。

A、异常处理可以定义在方法体、自由块或构造方法中。

Java上机题目及答案代码.doc

Java上机题目及答案代码.doc
}
}
实验
一、实验目的
1)掌握Java异常的概念及工作机制2)掌握异常的分类
3)掌握抛出异常语句的使用(throw)
4)寧握抛出捕获处理界常语句的使用(try・・・catch・・・finally)
5)掌握上抛异常语句的使用(throws)
6)掌握创建白定义异常
二、实验环境
JDK1.6+Eclpise3.2
a=reader. nextlnt();
b=reader. nextl nt();
c=reader. nextln t();
sum=a+b+c;
reader.close();
}
}
public class lnout_2{
public static void main(String[] args)throws lOException{
import javax.swing JTextArea;
public class MyFrame extends JFrame{ private JButton btnO=new JButton(H0"); private JButton btnl二new
private JButton btn2=new JButton("2"); private JButton btn3=new JButton("3"); private JButton btn4=new JButtonfM");
import java.awt.event.WindowEvent;
import java.awt.event.WindowListener;
import java.util.ArrayList;

java上机实验答案与解析

java上机实验答案与解析

j a v a上机实验答案与解析内部编号:(YUUT-TBBY-MMUT-URRUY-UOOY-DBUYI-0128)JAVA上机实验题答案与解析实验一 Java程序编程1.编写一个Java应用程序,输出内容为Hello!。

注:文件位置位于e:\2:\ 编译:(1)e:(2)cd 2 (3)javac (4)java Hello 2.编写一个Java小应用程序,输出内容为我一边听音乐,一边学Java。

第一步编写import .*;import .*;public class MyApplet extends Applet{public void paint(Graphics g){("我一边听音乐,我一边做java",25,25);}}第二步在DOS环境中编译(....javac )第三步使用记事本编写<applet code= height=200 width=120></applet>第四步将记事本文件名命名为第五步打开实验二类的定义1.编写Java应用程序,自定义Point类,类中有两个描述坐标位置的double变量x,y,利用构造方法,实现对Point 对象p1,p2初始化,p1和p2对应坐标分别为(15,20),(10,30);定义方法getX(),getY()分别获得点的横坐标和纵坐标;定义方法setX(),setY()分别获得点的横坐标和纵坐标;并且把p1和p2输出;public class Point {double x,y;Point(double x,double y){=x;=y;}double getX(){return x;}double getY(){return y;}void setX(double x){=x;}void setY(double y){=y;}public static void main(String[] args) {Point p1=new Point(15,20);写Java应用程序,自定义Circle类,类中有两个double 变量r,s,一个类变量pi,利用构造方法实现对半径是3和的初始化,自定义getArea方法实现圆面积求解;public class Circle {double s,r;public Circle(double r){=r;}double get Area(){=pi*r*r;return s;}public static void main(String[] args) {Circle c1=new Circle(3);Circle c2=new Circle;Area ());Area());}}实验三类的继承和多态性1.(1)编写一个接口ShapePara,要求:接口中的方法: int getArea():获得图形的面积。

JavaIO流常见面试题

JavaIO流常见面试题

JavaIO流常见⾯试题JavaIO流常见⾯试题1. Java中有⼏种类型的流?1. 字符流和字节流。

2. 字节流继承inputStream和OutputStream3. 字符流继承⾃InputSteamReader和OutputStreamWriter4. 总体结构图2.字节流和字符流哪个好?怎么选择?1. ⼤多数情况下使⽤字节流会更好,因为⼤多数时候 IO 操作都是直接操作磁盘⽂件,所以这些流在传输时都是以字节的⽅式进⾏的(图⽚等都是按字节存储的)2. 如果对于操作需要通过 IO 在内存中频繁处理字符串的情况使⽤字符流会好些,因为字符流具备缓冲区,提⾼了性能3. 什么是缓冲区?有什么作⽤?1. 缓冲区就是⼀段特殊的内存区域,很多情况下当程序需要频繁地操作⼀个资源(如⽂件或数据库)则性能会很低,所以为了提升性能就可以将⼀部分数据暂时读写到缓存区,以后直接从此区域中读写数据即可,这样就显著提升了性。

2. 对于 Java 字符流的操作都是在缓冲区操作的,所以如果我们想在字符流操作中主动将缓冲区刷新到⽂件则可以使⽤ flush() ⽅法操作。

4. 字符流和字节流有什么区别?字符流和字节流的使⽤⾮常相似,但是实际上字节流的操作不会经过缓冲区(内存)⽽是直接操作⽂本本⾝的,⽽字符流的操作会先经过缓冲区(内存)然后通过缓冲区再操作⽂件5. 什么是Java序列化,如何实现Java序列化?1. 序列化就是⼀种⽤来处理对象流的机制,将对象的内容进⾏流化。

可以对流化后的对象进⾏读写操作,可以将流化后的对象传输于⽹络之间。

序列化是为了解决在对象流读写操作时所引发的问题2. 序列化的实现:将需要被序列化的类实现Serialize接⼝,没有需要实现的⽅法,此接⼝只是为了标注对象可被序列化的,然后使⽤⼀个输出流(如:FileOutputStream)来构造⼀个ObjectOutputStream(对象流)对象,再使⽤ObjectOutputStream对象的write(Object obj)⽅法就可以将参数obj的对象写出6. PrintStream、BufferedWriter、PrintWriter的⽐较?1. PrintStream类的输出功能⾮常强⼤,通常如果需要输出⽂本内容,都应该将输出流包装成PrintStream后进⾏输出。

Java面试题(IO流)

Java面试题(IO流)

1、以下哪些类提供了创建一个目录的方法?AA、FileB、DataOutputC、DirectoryD、FileDescriptor解析:不解释2、以下说法正确的是A、RandomAccessFile类是File类的子类B、FileWriter类提供有操作基本数据类型的方法C、RandomAccessFile类提供有删除磁盘文件的方法D、File类提供有删除磁盘文件的方法解析:不解释3、以下哪个类的构造器需要mode参数r或rw?CA、DataInputStreamB、InputStreamC、RandomAccessFileD、File解析:不解释4、以下哪个关于Serializable的描述是正确的?BA、Serializable是Java语言中的一个关键字B、Serializable是一个可以被实现的接口C、Serializable是一个可以被继承的类D、以上均不对解析:Serializable序列化接口5、从InputStream对象中如何创建一个Reader对象?CA、使用InputStream类中定义的createReader()方法B、使用Reader类中的createReader()方法C、构造一个InputStreamReader实例,将InputStream对象作为InputStreamReader类构造器的参数传入D、构造一个OutputStreamReader实例,将InputStream对象作为OutputStreamReader 类构造器的参数传入解析:不解释6、以下代码的执行结果是?Cpublic class Example {public static void main(String[] args) {File f = new File("c:\\large.txt");}}A、large.txt文件在本地硬盘上被创建B、在Unix系统上运行失败,因为路径分割符不正确C、large.txt文件在本地硬盘上没有被创建D、如果large.txt文件已经存在,则一个异常被抛出解析:没有做mkdir动作7、以下代码的执行结果是?Apublic class Example {public static void main(String[] args) {RandomAccessFile raf = new RandomAccessFile("test.java", "rw");raf.seek(raf.length());}}A、代码编译失败B、运行期IOException异常抛出C、文件指针定位在最后一个字符前D、文件指针定位在最后一个字符后解析:seek方法的作用是改变文件索引指针位置,但是题目中没有声明异常8、以下代码的执行结果是?Apublic class Example {public static void main(String[] args) throws IOException {PrintStream pr = new PrintStream(new FileOutputStream("outfile"));System.out = pr;System.out.println("OK!");}}A、代码编译失败,因为为System.out是一个常量,不能赋值B、代码编译成功,但因为System.out是一个常量,导致运行期异常抛出C、控制台输出OK!D、outfile文件中输出OK!解析:不解释9、给出以下代码的执行结果是?Apublic class Example {public static void main(String[] args) throws IOException {StringReader strinin = new StringReader("test");LineNumberReader in = new LineNumberReader(strinin);PrintWriter out = new PrintWriter(System.out);out.println(in.readLine());out.flush();}}A、testB、1.testC、1:testD、1 test解析:10、以下代码的执行结果是?Bpublic class Example {public static void main(String[] args) throws IOException {RandomAccessFile file = new RandomAccessFile("test.txt", "rw");file.writeBoolean(true);file.writeInt(123456);file.writeInt(7890);file.writeLong(10000000);file.writeInt(777);file.writeFloat(0.0001f);file.seek(5);System.out.println(file.readInt());file.close();}}A、123456B、7890C、10000000D、777解析:本例中共写入字节数为1(boolean)+4(int)+8(long)+4(int)+8(float)=29,seel ()方法用于从文件起始位置跳过制定数量的字节数,seek(5)是跳过了5个字节,所以从第6个字节开始读取,即从写入的第二个int型值(7890)开始读取,故打印输出为789011、以下代码的执行结果是?Cpublic class Example {public static void main(String[] args) throws IOException {try {String strString = "test";char buffer[] = new char[strString.length()];strString.getChars(0, strString.length(), buffer, 0);FileWriter f = new FileWriter("MyFile1.txt");FileWriter f1 = f;f1.close();for (int i = 0; i < buffer.length; i++) {f.write(buffer[i] + "");}f.close();FileWriter f2 = new FileWriter("MyFile2.txt");f2.write(buffer);f2.close();} catch (IOException e) {System.out.println(e.getMessage());}}}A、运行期无异常抛出B、执行f1.close()抛出IOException异常C、f.write(buffer[i]+"")抛出IOException异常D、执行new FileWriter("MyFile1.txt")抛出IOException解析:此行的上一行已经关闭流12、以下哪项是Java语言中定义的字节流?ADA、OutputStreamB、ReaderC、WriterD、InputStream解析:不解释13、在输入流的read方法返回哪个值的时候表示读取结束?CA、0B、1C、-1D、null解析:不解释14、为了从文本文件中逐行读取内容,应该使用哪个处理流对象?AA、BufferedReaderB、BufferedWriterC、BufferedInputStreamD、BufferedOutputStream解析:readLine方法15、为了实现自定义对象的序列化,该自定义对象必须实现哪个接口?BA、VolatileB、SerializableC、RunnableD、Transient解析:Serializable序列化接口16、以下程序执行结果是?Bpublic class Example {public static void main(String[] args) throws IOException {String s = "x,yy,123";Scanner sc = new Scanner(s);while (sc.hasNext()) {System.out.println(sc.next() + " ");}}}A、x yyB、x,yy,123C、x yy 123D、x,yy解析:.Next()是字符串输入方法17、现有:f是一个File类实例的合法引用fr是一个FileReader类实例的合法引用br是一个BufferedReader类实例的合法引用如下代码:String line = null;//插入代码处System.out.println(line);}哪一行代码插入到插入代码处将循环一次输出文本文件的一行?DA、while((line = f.read())!=null){B、while((line = fr.read())!=null){C、while((line = br.read())!=null){D、while((line = br.readLine())!=null){解析:readLine方法返回值为String18、现有int x = reader.read(),下列哪一项正确BA、reader不是FileReader或者BufferedReader类型B、reader可以使FileReader或者BufferedReaderC、reader可以使FileReader类型,但不能使BufferedReader类型D、reader可以使BufferedReader类型,但不能使FileReader类型解析:不解释19、现有:String s = "write a line to a file";w.print(s + "\n");哪一个是对的?CA、w既可以是PrintWriter类型,也可以是BufferedWriter类型B、w既不可以是PrintWriter类型,也不可以是BufferedWriter类型C、w可以是PrintWriter类型,但不可以是BufferedWriter类型D、w既可以是BufferedWriter类型,也可以是PrintWriter类型解析:不解释20、有如下代码:public class Example implements Serializable {Collar c = new Collar();}class Collar implements Serializable {CollarPart cp1 = new CollarPart();CollarPart cp2 = new CollarPart();}class CollarPart implements Serializable {}如果Example实例被序列化,则多少对象将被序列化?DA、1B、2C、3D、4解析:new Example c cp1 cp221、以下关于File类的描述哪些是正确的?ACA、File类可以用于访问当前工作路径中的文件B、当一个File类实例被构建时,对应的目录或文件在本地文件系统中被创建C、File类可以用于访问本地文件系统中的目录或文件D、当一个File类实例被垃圾回收器回收后,对应的目录或文件也被删除解析:File实例被构建时需要mkdir才可以创建文件File实例被回收后,创建的文件不会被删除22、以下哪些语句是构建RandomAccessFile实例的正确形式?ADA、RandomAccessFile("file","r");B、RandomAccessFile("r","file");C、RandomAccessFile('r',"file");D、RandomAccessFile("file","rw");解析:不解释23、请问以下哪些修饰符用于修饰类属性时,该属性不能被序列化?BCA、privateB、staticC、transientD、protected解析:static transient volatile final不可以序列化24、以下哪些是FileOutputSteram类的正确构造形式?A、FileOutputStream(FileDescriptor fd)B、FileOutputStream(String n,boolean a)C、FileOutputStream(boolean a)D、FileOutputStream(File f)解析:FileOutputStream(File file)FileOutputStream(File file, boolean append)FileOutputStream(FileDescriptor fdObj)FileOutputStream(String name)FileOutputStream(String name, boolean append)25、以下哪些是定义在java.io包中的抽象类?ACA、InputStreamB、PrintStreamC、ReaderD、FileInputStream解析:不解释26、以下哪些描述是正确的?ACA、InputStream和OutputStream类是基于字节流的B、ObjectInputStream类和ObjectOutputStream类不支持序列化的对象C、Reader和Writer是基于字符流的D、Reader类和Writer类是支持对象序列化的首选解析:不解释27、以下哪些描述是正确的?ABA、Writer类可以使用不同的字符编码向输出流写入字符B、Writer类可以向输出流写入Unicode字符C、Writer类提供向输出流写入任意Java基本数据类型的方法D、Writer类提供向输出流写入引用数据类型的方法解析:不解释28、什么是java序列化,如何实现java序列化?解析:序列化就是一种用来处理对象流的机制,所谓对象流也就是将对象的内容进行流化。

JavaIO流面试题及整理

JavaIO流面试题及整理

JavaIO流面试题及整理Java IO(Input/Output)流是Java程序在与外部设备进行数据交互时使用的机制。

在面试中,Java IO流是一个常见的考察点,面试官会针对IO流的原理、特性和用法进行提问。

本文将整理一些常见的Java IO流面试题及答案。

一、Java IO流的概念和分类Java IO流是Java对数据输入输出的重要概念,是通过字节流和字符流的方式进行数据的读写操作。

根据流的读写方向和数据处理单位的不同,Java IO流可以分为四大类:1. 字节流(Byte Streams):以字节为单位进行输入输出,主要用于处理二进制数据。

2. 字符流(Character Streams):以字符为单位进行输入输出,主要用于处理文本数据。

3. 节点流(Node Streams):直接连接到数据源或目标的流,例如文件输入输出流。

4. 处理流(Processing Streams):对节点流进行封装和处理的流,例如缓冲流和数据流。

二、常见的Java IO流类及其作用Java IO提供了多个用于读写数据的类,以下是几个常见的IO流类及其作用:1. FileInputStream和FileOutputStream:用于读写字节流,可以对文件进行输入输出操作。

2. FileReader和FileWriter:用于读写字符流,可以对文件进行输入输出操作。

3. BufferedReader和BufferedWriter:用于提供缓冲机制,提高字符流和字节流的读写效率。

4. ByteArrayInputStream和ByteArrayOutputStream:用于读写字节数组的流。

5. ObjectInputStream和ObjectOutputStream:用于读写对象的流。

三、Java IO流的阻塞和非阻塞模式阻塞与非阻塞是指IO操作在不能立即完成时的行为模式。

1. 阻塞模式:在阻塞模式下,当IO操作不能立即完成时,线程会被阻塞,直到IO操作完成。

Java_IO流详解

Java_IO流详解

Java的核心库java.io提供了全面的IO接口,包括:文件读写、标准设备输出等。

Java中IO是以流为基础进行输入输出的,所有数据被串行化写入输出流,或者从输入流读入。

在项目开发中,IO是非常基础的部分,在面试当中经常出现。

对于初学者而言,IO部分是容易忽略的内容,求职者一定要掌握该知识点。

根据面试题详解IO流。

10.3.1 了解Java的IO类面试例题28:下面关于System.out的说法哪个正确?请选择正确的答案。

(a)System.out是1个PrintStream。

(b)System.out是1个OutputStream。

(c)System.out是1个FilterOutputStream。

(d)System.out是1个PrintStream。

(e)System.out在异常时,将抛出IOException。

考点:考查求职者对Java语言的IO处理的掌握。

出现频率:★★★★解析IO(Input/Output)是计算机输入/输出的接口。

Java的核心库java.io提供了全面的IO接口,包括文件读写、标准设备输出等。

Java中IO是以流为基础进行输入输出的,所有数据被串行化写入输出流,或者从输入流读入。

此外,Java也对块传输提供支持,在核心库java.nio中采用的便是块IO。

注意:流IO的好处是简单易用,缺点是效率较低。

块IO效率很高,但编程比较复杂。

Java的IO模型设计非常优秀,它使用Decorator模式,用户可以动态装配不同功能的Stream,以便获得需要的功能。

例如,需要一个具有缓冲的文件输入流,则应当组合使用FileInputStream和BufferedInputStream。

Java的IO体系分Input/Output和Reader/Writer两类,区别在于Reader/Writer在读写文本时能自动转换内码。

基本上,所有的IO类都是配对的,即有XxxInput就有一个对应的XxxOutput。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
是一个关于IO流的题目:创建文件和文件备份
package com.workit.part1;
import java.io.BufferedReader;
import java.io.BufferedWriter;
import java.io.FileNotFoundException;
{
bw.write(line);
bw.newLine();
line = br.readLine();
}
bw.close();
fw.close();
br.close();
fr.close();
System.out.println(sfile + "文件已经备份为" + dfile + "文件。");
e.printStackTrace();
}
}
}
try {
FileWriter fw = new FileWriter(dfile);
BufferedWriter bw = new BufferedWriter(fw);
String line = br.readLine();
while(line != null)
e.printStackTrace();
}
}
//文件备份
public void backupFile(String sfile,String dfile)
{
try {
FileReader fr = new FileReader(sfile);
BufferedReader br = new BufferedReader(fr);
import ileReader;
import java.io.FileWriter;
import java.io.IOException;
public class task01 {
/**
* @param args
*/
public static void main(String[] args) {
}
//创建文件
public void createFile(String filename,String content)
{
try {
FileWriter fw = new FileWriter(filename);
BufferedWriter bw = new BufferedWriter(fw);
bw.write(content);
bw.close();
fw.close();
System.out.println(filename + "已经生成!");
} catch (IOException e) {
// TODO Auto-generated catch block
// TODO Auto-generated method stub
task01 t = new task01();
t.createFile("test1.txt", "湖南文理学院数学学院\n86757698lkajsdflkajsdfl");
t.backupFile("test1.txt", "test2.txt");
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
} catch (FileNotFoundException e) {
// TODO Auto-generated catch block
相关文档
最新文档