收藏 分享(赏)

java答案第六章.doc

上传人:hyngb9260 文档编号:5957022 上传时间:2019-03-22 格式:DOC 页数:20 大小:418KB
下载 相关 举报
java答案第六章.doc_第1页
第1页 / 共20页
java答案第六章.doc_第2页
第2页 / 共20页
java答案第六章.doc_第3页
第3页 / 共20页
java答案第六章.doc_第4页
第4页 / 共20页
java答案第六章.doc_第5页
第5页 / 共20页
点击查看更多>>
资源描述

1、Java 语言程序设计第六章课后习题答案1.将本章例 6-1 至 6-18 中出现的文件的构造方法均改为使用 File 类对象作为参数实现。个人理解:File 类只能对整文件性质进行处理,而没法通过自己 直接使用 file.Read()或者是file.write()类似方法对文件内容进行写或者读取。注意:是 直接;下面只提供一个例 2 变化,其他的你自己做,10 几道啊,出这题的人真他妈有病。import java.io.*;public class test6_2public static void main(String args) throws IOException String fi

2、leName = “D:Hello.txt“;File writer=new File(fileName);writer.createNewFile();BufferedWriter input = new BufferedWriter(new FileWriter(writer);input.write(“Hello !n“);input.write(“this is my first text file,n“);input.write(“你还好吗?n“);input.close();运行结果:(电脑系统问题,没法换行,所以一般使用BuffereWriter中newLine()实现换行)2.

3、模仿文本文件复制的例题,编写对二进制文件进行复制的程序./ CopyMaker类import java.io.*; class CopyMaker String sourceName, destName;BufferedInputStream source;BufferedOutputStream dest;int line;/打开源文件和目标文件,无异常返回trueprivate boolean openFiles() try source = new BufferedInputStream(new FileInputStream( sourceName );catch ( IOExcept

4、ion iox ) System.out.println(“Problem opening “ + sourceName ); return false;try dest = new BufferedOutputStream(new FileOutputStream( destName ); catch ( IOException iox )System.out.println(“Problem opening “ + destName );return false;return true; /复制文件private boolean copyFiles() try line = source.

5、read(); while ( line != -1 ) dest.write(line); line = source.read(); catch ( IOException iox ) System.out.println(“Problem reading or writing“ );return false;return true;/关闭源文件和目标文件private boolean closeFiles() boolean retVal=true;try source.close(); catch ( IOException iox ) System.out.println(“Prob

6、lem closing “ + sourceName );retVal = false;try dest.close(); catch ( IOException iox ) System.out.println(“Problem closing “ + destName );retVal = false;return retVal; /执行复制public boolean copy(String src, String dst ) sourceName = src ;destName = dst ;return openFiles() /test6_2public class test6_2

7、 public static void main ( String args ) String s1=“lin.txt“,s2=“newlin.txt“;if(new CopyMaker().copy(s1, s2)System.out.print(“复制成功“ );elseSystem.out.print(“复制失败“ ); 运行前的两个文本:lin.txt 和 newlin.txt(为空)运行后: 3.创建一存储若干随机整数的文本文件,文件名、整数的个数及范围均由键盘输入。/ memory 存储类import java.io.*;import java.util.Random;public

8、 class memory private String name;private int count;private int Max;private int Min;public memory(String n,int c,int min,int max)this.name=n;this.count=c;this.Min=min;this.Max=max;public void startmemory()tryFileWriter out=new FileWriter(name);int limit=Max-Min;Random random = new Random();for (int

9、i=1;i“);fuck.newLine();fuck.write(“Power of 2Value“);for (int i=0;i“+i+“+Math.pow(i, 2)+“);fuck.write(“);fuck.newLine();fuck.close();运行结果:6.用记事本程序创建一篇包含几十个英语单词的小文章,要求从屏幕输出每一个单词。/test6_6import java.io.*;public class test6_6 public static void main(String args)throws IOException FileReader fr=new File

10、Reader(“naruto.txt“);int s;while(s=fr.read()!=-1)if(s=aci=cj;cj=temp;s=new String(c); /注意 不能用c.toStringreturn s;public static void main(String args) Scanner in=new Scanner(System.in);String s=in.next();/从键盘输入一组字符WriteToFile(s,“D:naruto.txt“); /将字符串保存到D:naruto.txts=null;/将s清空,下面好读取,不然无法辨别 s是读取到数据还是原来

11、的数据s=ReadFromFile(“D:naruto.txt“); /从文件D:naruto.txt读出字符串s=sort(s); /将s进行排序WriteToFile(s,“D:newnaruto.txt“); /将排序后的内容保存到另一文件 D:newnaruto.txtSystem.out.println(s); 运行结果:文件 D:naruto.txt 和 D:newnaruto.txt中内容:8.创建一个学生类(包括姓名、年龄、班级、密码) ,创建若干该类的对象并保存在文件中(密码不保存) ,从文件读取对象后显示在屏幕上。/Student 类import java.io.Seria

12、lizable;class Student implements SerializableString name;int age;int grade;transient String secret;public Student(String name,int age,int grade,String secret)this.name=name;this.age=age;this.grade=grade;this.secret=secret;/test6_8import java.io.*;public class tset6_8 public static void main(String a

13、rgs) throws IOException,ClassNotFoundExceptionStudent student=new Student(“苍井空“,19,101,“changjingkong“),new Student(“吉沢明“,19,103,“jizeming“),new Student(“武藤兰“,20,104,“wutenglan“ ),new Student(“我爱女优“,21,105,“woainvyou“ );/创建输出ObjectOutputStream oos=new ObjectOutputStream(new FileOutputStream(“naruto.

14、dat“);for(int i=0;i8)System.arraycopy(name.toCharArray(),0, this.Name, 0,8);/如果字符长度大于8,只取前8个else System.arraycopy(name.toCharArray(),0,this.Name,0,name.toCharArray().length);/如果字符长度小于8 ,有几个填几个this.Number=number;this.Price=price;this.Count=count;public String getName() return new String(this.Name);pu

15、blic void setName(String name) if(name.toCharArray().length8)System.arraycopy(name.toCharArray(),0, this.Name, 0,8);else System.arraycopy(name.toCharArray(),0,this.Name,0,name.toCharArray().length);public double getPrice() return Price;public void setPrice(double price) this.Price = price;public int

16、 getNumber() return Number;public void setNumber(int number) this.Number = number;public int getCount() return Count;public void setCount(int count) this.Count = count;/操作Work 类(包含输入、查询、更改操作)import java.io.*;public class WorkString FileName;public Work(String FileName)this.FileName=FileName;/写第n条商品记

17、录public void writeThing(Thing th,int n) throws Exception RandomAccessFile rafw=new RandomAccessFile(FileName,“rw“);rafw.seek(n*32); /将位置指示器移到指定位置上,每个商品占 32个字节for(int i=0;i8)System.arraycopy(name.toCharArray(),0,borrow,0,8);else System.arraycopy(name.toCharArray(),0,borrow,0,name.toCharArray().length

18、);for(int i=0;i8;i+)rafw.writeChar (borrowi);rafw.close(); /修改存入n号商品价格public void setThingPrice(int n,double price) throws Exception RandomAccessFile rafw=new RandomAccessFile(FileName,“rw“);rafw.seek(n*32+8+4); /将位置指示器移到指定位置上,每个商品占24 个字节,名字占8字节rafw.writeDouble(price);rafw.close();/修改存入n号商品库存量public

19、 void setThingCount(int n,int count) throws Exception RandomAccessFile rafw=new RandomAccessFile(FileName,“rw“);rafw.seek(n*32+8+4+8); /将位置指示器移到指定位置上,每个商品占24个字节,名字占8字节rafw.writeFloat(count);rafw.close();/test6_10import java.util.Scanner;public class test6_10public static void main(String args)throws

20、 Exception Scanner scanner=new Scanner(System.in);int number;String name;Work work=new Work(“d:/naruto.txt“);Thing thing=new Thing(“立白洗衣粉“ ,1,3.5,55),new Thing(“编辑者林楚金“ ,2,0,0),new Thing(“舒肤佳“ ,4,8.9,89),new Thing(“杜蕾丝超薄系列“ ,5,1.2,444444),;for(int i=0;ithing.length;i+)work.writeThing(thingi,i);for(int i=0;ithing.length;i+)work.readThing(i);System.out.println(“请输入要查询商品编号 “);number=scanner.nextInt();work.readThing(number-1);System.out.println(“请输入要修改某一商品名字:编号和名字 “);number=scanner.nextInt();name=scanner.next();work.setThingName(number-1,name);work.readThing(number-1);运行结果:

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > 网络科技 > Java

本站链接:文库   一言   我酷   合作


客服QQ:2549714901微博号:道客多多官方知乎号:道客多多

经营许可证编号: 粤ICP备2021046453号世界地图

道客多多©版权所有2020-2025营业执照举报