java随机读写程序题
- 格式:doc
- 大小:43.50 KB
- 文档页数:2
《Java基础入门》课后习题答案第7章IO(输入输出)一、填空题1、Java中的I/O流,按照传输数据不同,可分为:字节流、字符流2.在Buffer与Channel交互时,数据从:Channel、读取到Buffer 中,或从Buffer入到Channel 中。
3.用于将字节流转换为字符流的是:InputStreamReader、OutputStreamWriter2、NIO主要有三大核心部分:Buffer、Channel、Selector5、Java中提供了一个类:RandomAccesseFile,它不但具有读写文件的功能,而且可以随机地从文件的任何位置开始执行读写数据的操作。
二、判断题1. 如果一个File表示目录下有文件或者子目录,调用delete()方法也可以将其删除。
错2.对象序列化是指将一个Java 对象转换成一个I/0 流中字节序列的过程。
对3.Channel 是一个接口对象,它类似于传统的流对象。
对4.InputStream类的close()方法是用于关闭流并且释放流所占的系统资源。
对5,BufferedInputStream 和BufferedOutputStream 不是字节缓冲流。
错三、选择题1.下面选项中,哪些是标准输人输出流?(多选) (AB)A. System.InB.System. OutC.InputStreamD.OutputStream2.File类中以字符串形式返回文件绝对路径的方法是哪一项?(C)A. getParent()B. getNamel)C. getAbsolutePathOD. getPath()3.以下创建RandomAccessFile类实例对象的代码,哪些是正确的?(多选)(AB)A.new RandomAccessFile(new File("D:\\itcast\\dirl\test. java"),”rw”);B.new RandomAccessFile("D:\\itcast\\dirl\test. java","r");C. new RandomAccessFile("D:\\itcast\\dir1\\test.java");D. new RandomAccessFile("D:\\itcast\\dir1\\test.java","wr")4.以下选项中,哪个流中使用了缓冲区技术? (A)A. BufferedOutputStreamB. FileInputStreamC. DataOutputStreamD. FileReader5.以下选项中,关于Java NIO 中Buffer类的常用说法正确的是哪一项?(B)A.clearO方法会清除缓冲区数据,并将position 设置为0.limit 设置为capacity OB.fip()方法先将limit 设置为当前position 位置,然后再将pson设置为0C.mark()方法用于设置Buffer 的标记(mark),其能在0 与limi 之间做标记D.rewind()方法将position 设置为0,并设置mark 标记四、简答题1、简述I/O 流的概念。
Java语言程序设计(一)模拟试卷(三)及答案一、单项选择题(本大题共10小题,每小题1分,共10分) 在每小题列出的四个备选项中只有一个是符合题目要求的,请将其代码填写在题后的括号内。
错选、多选或未选均无分。
1.如果发生多个线程形成一个等待环,这样,所有线程都陷入相互等待的状态。
这种循环等待现象称为() (1分)A:互斥B:同步C:死锁D:临界2.下面有关临界段叙述错误的是() (1分)A:多线程互斥使用共享资源的程序段被称为临界段B:临界段是一种加锁机制,与多线程共享资源有关C:临界段的作用是在任何时该一个共享资源只能供一个线程使用D:如果一个线程已进入某个共享资源的临界段,且还没有使用结束,其他进程可抢占这个共享的资源3.以下程序代码的输出结果是()int x=100;System.out.println("5.5"+x%8); (1分)A:5.512B:5.512.5C:18D:5.544.在Java程序中有代码如下:System.out.println((new StringTokenizer("I am a student","a")).countTokens());则输出结果为() (1分)A:I am a studentB:2C:3D:45.为8位字节流数据提供读操作支持的类是() (1分)A:FileInputStreamB:FileOutputStremC:FileReaderD:FileWriter6.下列有关抽象类及抽象方法的叙述错误的是() (1分)A:使用final修饰的类是抽象类B:使用abstract修饰的方法是抽象方法C:抽象类必须被继承才能使用,抽象类不可能有实例D:抽象类可以没有抽象方法,但有抽象方法的类一定是抽象类7.在编写Java程序访问数据库的过程中,用来处理驱动程序的加载和建立新数据库连接的类是() (1分)A:DriverManager类B:Statement类C:Connection类D:ResultSet类8.在Java语言中执行如下语句后,i和j的值分别为()int i=10;int j=++i; (1分)A:11和11B:10和10C:10和11D:11和109.包含当事件发生时从源传递给监视器的特定事件信息的对象是() (1分)A:事件对象B:源对象C:监视器对象D:接口10.在Java程序中有如下设置:setBackground(Color.blue);g.setXORMode(Color.red);g.setColor(Color.blue);g.drawLine(300,300,500,500);则线的颜色是() (1分)A:蓝色B:红色C:黄色D:绿色二、填空题(本大题共10小题,每小题2分,共20分)请在每小题的空格中填上正确答案。
java程序设计练习题Java程序设计练习题Java是一种广泛应用于软件开发领域的编程语言,它的应用范围涵盖了从移动应用到大型企业级应用的各个领域。
为了提高自己的编程能力和解决实际问题,程序设计练习题是非常有益的。
本文将介绍一些Java程序设计练习题,帮助读者提升自己的编程水平。
1. 计算两个数的和与差编写一个Java程序,要求用户输入两个数字,并计算它们的和与差。
可以使用Scanner类来获取用户的输入,并使用基本的算术运算符进行计算。
最后将结果输出到控制台。
2. 判断一个数是否为素数编写一个Java程序,判断用户输入的一个数是否为素数。
素数是只能被1和自身整除的数,如2、3、5、7等。
可以使用循环和条件语句来实现判断逻辑,并输出判断结果。
3. 查找数组中的最大值和最小值编写一个Java程序,查找给定数组中的最大值和最小值。
可以使用循环和条件语句来遍历数组,并使用变量来记录最大值和最小值。
最后将结果输出到控制台。
4. 实现一个简单的计算器编写一个Java程序,实现一个简单的计算器。
要求用户输入两个数字和一个运算符(如+、-、*、/),然后根据运算符进行相应的计算,并输出结果。
可以使用条件语句来判断输入的运算符,并使用基本的算术运算符进行计算。
5. 编写一个简单的学生成绩管理系统编写一个Java程序,实现一个简单的学生成绩管理系统。
要求用户输入学生的姓名和成绩,并将其存储在一个数组中。
然后可以根据学生的姓名进行查询,输出学生的成绩。
可以使用循环和条件语句来实现查询逻辑。
6. 实现一个简单的猜数字游戏编写一个Java程序,实现一个简单的猜数字游戏。
程序随机生成一个1到100之间的整数,然后要求用户猜这个数字。
可以使用循环和条件语句来实现猜测逻辑,并根据用户的猜测结果给出相应的提示,直到用户猜中为止。
7. 编写一个简单的图书管理系统编写一个Java程序,实现一个简单的图书管理系统。
要求用户输入图书的名称和作者,并将其存储在一个数组中。
第一章一、选择题(每题1分)1.Java源文件和编译后的文件扩展名分别为A .class和 .javaB .java和 .classC.class和 .class D .java和 .java2.Jcreator是A 一种全新的程序语言B 一种java程序开发辅助工具C 一种由Java写成的浏览器D 一种游戏软件3.如下哪些是开始执行Java 程序的main 方法的正确形式A.public static main (String args);B.public void main (String argv[]);C.public static int main (String args[])D.public static void main (String args[]);4.为AB类的一个无形式参数无返回值的方法method书写方法头,使得使用类名AB 作为前缀就可以调用它,该方法头的形式为A. static void method( )B. public void method( )C. final void method( )D. abstract void method( )5.下面哪些选项是正确的main方法说明?()A.void main() B.private static void main(String args[]) C.public main(String args[]) D.public static void main(String args[])二、填空题(每空1分)1、Java程序中一个类可以有个直接父类,Java中所有类都是___的子类。
2、面向对象的软件开发方法用类把数据和基于数据的操作封装在一起。
Java程序分为两大类,即和。
2、一个Java应用程序编译后即可运行,运行时使用命令。
三、判断题(每题1分)1.Java语言具有较好的安全性和可移植性及与平台无关等特性。
历年全国计算机等级考试二级Java语言程序设计试题及答案一、选择题(每小题1分,共40小题,共40分)1 •下列叙述中正确的是()。
A. —个算法的空间复杂度大,则其时间复杂度必定大B. —个算法的空间复杂度大,则其时间复杂度必定小C. 一个算法的时间复杂度大,则其空间复杂度必定小D. 上述3种说法都不对Do【解析】算法的时间复杂度和空间复杂度是从不同的角度来衡量算法的执行情况的,它们之间没有内在联系。
2.开发软件时对提高开发人员工作效率至关重要的是()。
A. 操作系统的资源管理功能B. 先进的软件开发工具和环境C. 程序员的数量D. 计算机的并行处理能力Bo【解析】先进的软件开发工具和环境对提高开发人员工作效率是至关重要的。
3•程序设计语言的基本成分是数据成分、运算成分、控制成分和()。
A. 对象成分B. 变量成分C. 语句成分D. 传输成分Do【解析】程序设计语言的基本成分有:数据成分,用于描述程序所涉及的数据;运算成分,用于描述程序中所包含的运算;控制成分,用于描述程序中所包含的控制;传输成分,用于表达程序中数据的传输。
4•对长度为n的线性表进行顺序查找,在最坏情况下需要比较的次数为()。
A. 125B. n/2C. nD. n+lCo【解析】对线性表进行顺序查找时,从表中的第一个元素开始,将给定的值与表中逐个元素的关键字进行比较,直到两者相符,查找到所要找的元素为止。
在最坏情况下,要查找的元素是表的最后一个元素或查找失败,这两种情况都需要将这个元素与表中的所有元素5 •有下列二叉树,对此二叉树前序遍历的结果为()A. XZCYABB. XYZABCC. XYABCZD. XYAZBCDo【解析】对二叉树的前序遍历是指:先访问根结点,然后访问左子树,最后访问右子树,并且,在访问左、右子树时,先访问根结点,再依次访问其左、右子树。
6•下列叙述中正确的是()。
A. 在面向对象的程序设计中,各个对象之间具有密切的关系B. 在面向对象的程序设计中,各个对象都是公用的C. 在面向对象的程序设计中,各个对象之间相对独立,相互依赖性小D. 上述3种说法都不对Co【解析】面向对象的程序设计是用对象模拟问题领域中的实体,各对象之间相对独立,相互依赖性小,通过消息来实现对象之间的相互联系。
java经典编程题目
以下是一些经典的Java编程题目,这些题目可以帮助你提高编程技巧和解决问题的能力:
1.反转字符串:编写一个Java方法,将给定的字符串反转。
2.斐波那契数列:编写一个Java方法,计算并返回斐波那契数列的第n项。
3.查找最大和最小元素:编写一个Java方法,在一个整数数组中查找最大和最小元素。
4.反转数组:编写一个Java方法,将给定的整数数组反转。
5.判断回文:编写一个Java方法,判断给定的字符串是否是回文。
6.计算阶乘:编写一个Java方法,计算给定整数的阶乘。
7.冒泡排序:编写一个Java方法,对给定的整数数组进行冒泡排序。
8.二分查找:编写一个Java方法,在已排序的整数数组中查找指定的元素。
9.合并两个有序数组:编写一个Java方法,将两个已排序的整数数组合并为一个新的已排序数组。
10.实现二叉树:编写一个Java类,实现二叉树数据结构,并实现插入、查找和删除节点的方法。
这些题目可以帮助你掌握Java编程的基础知识和技能,提高你的编程能力和解决问题的能力。
计算机等级二级考试辅导:Java IO单元机试题及解答(第4部分)1、编程实现将日志记录追加保存到日志文件中的功能(1)问题分析和解题思路在java.io程序包中提供有实现随机文件读写的RandomAccessFile流类,但由于RandomAccessFile流类是直接继承于Object类而非InputStream/OutputStream等IO流类,从而应用该流类可以实现读写文件中任何位置中的数据(只需要改变文件的读写位置的指针)。
此外,由于RandomAccessFile流类实现了DataOutput与DataInput接口,因而利用RandomAccessFile流类还可以读写Java程序中的不同类型的基本类型数据(比如采用readLong()方法可以读取长整数,而利用readInt()方法则可以读出整数值等)。
本问题的功能要求是实现日志记录的追加保存功能,也就是需要应用RandomAccessFile 流类在每次保存日志记录内容时移动文件记录指针到文件尾部,然后将当前的日志记录数据写入到文件尾部从而产生出追加保存的应用效果。
当然,应用RandomAccessFile类编程应用的基本步骤如下:1)生成流对象并且指明读写类型;2)移动读写位置;3)读写文件内容;4)关闭文件。
(2)在MyEclipse开发工具中创建出一个类名称为WriteLogInfoToFile,程序包名称为com.bluedream.javaio,并且包含有main()方法的Java程序类,WriteLogInfoToFile程序类的创建过程参看如下示例图所示。
(3)编程WriteLogInfoToFile程序类以实现本示例的功能在WriteLogInfoToFile程序类的main()方法中,首先获得用户的键盘输入的字符(回车结束)并临时缓存在字符串缓冲区中;然后再构建出RandomAccessFile随机文件流对象实例,并指定操作方式为“读写”;每次保存日志信息之前,移动读写指针到文件尾部,最后写入日志信息;日志信息保存完毕后,关闭随机文件流对象并释放所占用的系统资源。
上机练习题(共包括四部分、16个练习、共96个练习题,请使用“视图”中的“文档结构图”查看)一、java语言基础和面向对象(教材内容的第1、2、3章)练习1(4)掌握:各种数据类型变量的定义和访问,各种数据类型常量的使用,数据类型转换。
1. 编写Applet,其功能为:取两个小于1000的正随机数,若两个数均小于10,先将它们都放大50倍,否则不改变这两个数。
最后,求这两个数的和并将结果输出。
要求这些功能在主类的方法init( ) 中实现,并使输出结果仅保留小数点后4位(不需四捨五入)。
@程序import java.awt.*;import java.applet.*;public class Applet1 extends Applet{public void init( ){Label out1=new Label(" ");Label out2=new Label(" ");double x,y;add(out1);add(out2);x=Math.random( )*1000;y=Math.random( )*1000;if(x<10&y<10) { x*=50; y*=50; }out1.setText(""+x+"+"+y+" 约等于");out2.setText(""+(int)((x+y)*10000)/10000.0);}}2. 请编写一个Applet,其功能为:取一个小于10000的正随机整数,并输出该数的平方根。
要求这些功能在主类的方法paint( ) 中实现,并使输出结果在四捨五入后保留小数点后4位。
@程序import java.awt.*;import java.applet.*;public class Applet1 extends Applet{public void paint(Graphics g){int k;k=(int)(Math.random( )*1000);g.drawString(""+k+" 的平方根约等于"+(int)((Math.sqrt(k)+0.00005)*10000)/10000.0,20,20);}}3. 编写一个Applet,其功能为:取一个50~200之间的正随机整数,如果该数为奇数则求它的平方根并转换成float型数后再输出;如果该数为偶数则求它的平方并输出。
《JAVA程序设计》复习题之(三)阅读程序题三、程序阅读题1.阅读以下程序import java.io.*;public class Reverse2 {public static void main(String args[ ]){int i,n=10;int a[] = new int[10];try {BufferedReader br = new BufferedReader(new InputStreamReader(System.in));a[i] = Integer.parseInt(br.readLine() );} catch (IOException e) { };for (i= n-1; i >= 0; i=i-2)}}请写出该程序的功能:该程序使用字符缓冲输入流从键盘输入10个数,然后倒序并间隔打印出来。
2.阅读以下程序import java.io.* ;public class abc {public static void main(String args[ ]) {int i, s = 0 ;int a[] = { 20, 30, 40, 50, 60, 70, 80, 90, 100, 110, 120 };for ( i = 0 ; i< a.length ; i++ )if (i % 3 == 0) s += a[i];}}请写出该程序的输出结果:s=2603、阅读以下程序:import java.io.*;public class TestRandomAccess {public static void main(String args[]) {int data_arr[]={65,66,56,23,27,1,43,65,4,99};try {RandomAccessFile randf=new RandomAccessFile("temp.dat","rw"); for (int i=0; i<data_arr.length; i++)randf.writelnt(data_arr[i]);randf.writeUTF("Good morning!"); 'for(int i=data_arr.length-l; i>=0; i=i-2) {randf.seek(i*4);System,out.print(" "+randf.readInt());randf.seek(40);randf.close();} catch (IOException e) {}}}该程序的输出结果是:99 65 1 23 66 Good morning!4、阅读以下程序并填空。
2017年10月高等教育自学考试全国统一命题考试Java语言程序设计(一)试卷课程代码04747一、单项选择题:本大题共10小题,每小题l分,共10分。
1.编译Java应用程序源程序会产生字节码文件,字节码文件的扩展名为()A..javaB..classC..htmlD..exe【答案】B【解析】java文件通过jvm虚拟机编译后会生成二进制码,显示的文件格式就是“.class”.【知识点】java应用程序和小应用程序2.表达式-1>>1的值是()A.232-1B.-1C.216-1D.2147483647【答案】B【解析】>>是算术右移位运算符,按二进制形式把所有的数字向右移动对应位数,低位移出(舍弃),高位的空位补符号位,即正数补零,负数补1. -1java表示就是32个1,右移1位后还是-1.【知识点】移位运算3.为类C定义一个int类型的变量x,使得只有同类和同包的其它类能使用代码C.x就可引用它,则定义x的形式为()A.static int x;B.public int x;C.protected static int x;D.public static int x;【答案】A【解析】用关键字static修饰的是类变量,静态变量被所有的对象所共享,都可以引用它。
【知识点】类变量4.设有字符串变量String s1="abc", s2=new String("abc"),则以下表达式的值为true 的是()A.pareToIgnoreCase(s2)B.pareTo(s2)C.s1==s2D.s1.equals(s2)【答案】D【解析】因为“==”指的是两个对象的引用相同,而“equals()”指的是两个对象的值相等。
【知识点】字符串变量5.在以下Swing的类中,属于容器的是()A.JDialogB.JButtonC.JTextAreaD.JList【答案】A【解析】swing顶层容器有JFrame,JDialog,JApplet【知识点】swing组件6.在以下叙述中,属于CardLayout布局特点之一的是()A.多个组件从上到下排列B.容器只能放置一个组件C.容器被分成网格状D.多个组件拥有同一个显示空间【答案】D【解析】CardLayout布局可以容纳多个组件,但多个组件拥有同一个显示空间,某一时刻只能显示一个组件。
* 以字节为单位读写文件常用于二进制文件图片等文件。
public static void readwriteFileByBytes(String infileName,String outfileName){ InputStream in=null;OutputStream out=null;try {in = new FileInputStream(infileName);out= new FileOutputStream(outfileName);int tempbyte;while((tempbyte=in.read()) != -1){ out.write(tempbyte); }int byteread = 0;byte[] buffer = new byte[1024];while ((byteread = in.read(buffer)) != -1){ out.write(buffer, 0, byteread); }} catch (IOException e) {e.printStackTrace();}finally {if (out != null){try { out.close(); }catch (IOException e){ e.printStackTrace();}}if (in != null){try {in.close();} catch (IOException e) {e.printStackTrace();}}} }public static void main(String[] args) {readwriteFileByBytes("temp/1.txt","temp/2.txt");}}* 随机读取文件内容public static void readwriteFileByRandomAccess(String fileName){RandomAccessFile randomFile = null;try {randomFile = new RandomAccessFile(fileName, "rw");System.out.println("filelegnth:"+randomFile.length());System.out.println("postion:"+randomFile.getFilePointer())for(int i=1;i<=10;i++){ randomFile.writeInt(i); }System.out.println("-----after write ------");System.out.println("filelegnth:"+randomFile.length());System.out.println("postion:"+randomFile.getFilePointer())randomFile.seek(8);randomFile.writeInt(100);randomFile.seek(0);for(int i=0;i<10;i++){ System.out.println(randomFile.readInt());}} catch (IOException e){e.printStackTrace();} finally {if (randomFile != null){try {randomFile.close();} catch (IOException e1) {}}}}public static void main(String[] args) {readwriteFileByRandomAccess("temp/random");}}* 以字符为单位读写文件,常用于读文本文件public static void readwriteFileByChars(String infileName,String outfileName){ Reader reader = null;Writer writer = null;try { reader = new FileReader(infileName);writer = new FileWriter(outfileName);int tempchar;while ((tempchar = reader.read()) != -1){writer.write((char)tempchar);}char[] tempchars = new char[30];int charread = 0;while ((charread = reader.read(tempchars))!=-1){ writer.write(tempchars,0,charread); }} catch (Exception e) {e.printStackTrace();}finally {if (writer != null){try {writer.close();} catch (IOException e) {e.printStackTrace();}}if (reader != null){try {reader.close();} catch (IOException e) {e.printStackTrace();}}} }public static void main(String[] args) { //readwriteFileByChars("temp/1.txt","temp/3.txt");}} * 以行为单位读取文件,常用于读面向行的格式化文件public static void readwriteFileByLines(String infileName,String outfileName){BufferedReader reader = null;PrintWriter writer = null;try {eader = new BufferedReader(new FileReader(infileName));writer = new PrintWriter(new BufferedWriter(new FileWriter(outfileName)));String tempString = null;while ((tempString = reader.readLine()) != null){writer.println(tempString);}} catch (Exception e) {e.printStackTrace();}finally {if (writer != null){ writer.close(); }if (reader != null){try { reader.close();}catch (IOException e) {e.printStackTrace(); }}}}public static void main(String[] args) {readwriteFileByLines("temp/1.txt","temp/4.txt");}}// 回文import java.util.Scanner;public class Testhuiwen{public static void main(String args[]){Scanner wen=new Scanner(System.in);System.out.print("请输入一段文字:");String string=wen.next();if(huiwen.hw(string)==true)System.out.println("回文");elseSystem.out.println("非回文");}}class huiwen{public static boolean hw(String string){boolean flag = true;int i=0,j=string.length()-1;while(i<j){if(string.substring(i,i+1).equals(string.substring(j,j+1))){ i++;j--; }else break;}if(i>=j) { flag = true; }else { flag = false; }return flag; } }* 将键盘输入的字符存入文件,键入exit结束* System.in是键盘,是InputStreampackage book.io;import java.io.*;public class FileKeyin {public static void main(String[] paramert) {String s;BufferedReader in =null;PrintWriter out =null;try{in = new BufferedReader(new InputStreamReader(System.in));out = new PrintWriter(new BufferedWriter(new FileWriter("keyin.txt")));while((s=in.readLine())!=null){if(s.equalsIgnoreCase("exit")) break;out.println(s); }}catch(IOException e){e.getStackTrace();}finally{if(out!=null){out.close();}if(in!=null){try{in.close();}catch(IOException e){e.getStackTrace();//整数位数}}}}}import java.util.Scanner;public class TestTBit {public static void main(String[] args) {Scanner input = new Scanner(System.in);System.out.print("请输入一个整数:");TBit.isWeishu(input.nextInt());}}class TBit {public static void isWeishu(int number) {int temp = 0;if (number == 0) {temp = 1;} elsewhile (number != 0) {number /= 10;temp++;}System.out.print("\n这个整数有" + temp + " 位\n");}}。