首页 > 代码库 > IO—Data
IO—Data
DataOuputStream类:继承了OutputStream类,利用其可以操作基本数据类型
构造函数:
DataOutputStream(OutputStream out) 创建一个新的数据输出流,将数据写入指定基础输出流。
常用的方法:
writeXxx(Xxx x):Xxx为数据类型:将一个 x值写出到基础输出流中。
writeByte(byte b) writeInt(int i) writeDouble(Double d)
writeUTF(String str):以与机器无关方式使用 UTF-8 修改版编码将一个字符串写入基础输出流。
public class TestDataOutputStream { public static void main(String[] args) { try { FileOutputStream fos = new FileOutputStream("D:/ttt.txt"); DataOutputStream dos = new DataOutputStream(fos); dos.writeInt(10); dos.writeDouble(3.14); dos.writeChar(‘A‘); dos.writeUTF("你好"); dos.flush(); dos.close(); fos.close(); } catch (FileNotFoundException e) { e.printStackTrace(); } catch (IOException e) { e.printStackTrace(); } } }
DataInputStream类:继承了InputStream类,利用其可以操作基本数据类型
构造函数:
DataInputStream(InputStream in) 创建一个新的数据输入流,将数据读入指定基础输入流。
常用的方法:
readXxx():Xxx为数据类型:将一个 x值写出到基础输出流中。
readInt() readDouble() readChar()...
readUTF():从包含的输入流中读取此操作需要的字节。
public class TestDataInputStream { public static void main(String[] args) { try { FileInputStream fis = new FileInputStream("D:/ttt.txt"); DataInputStream dis = new DataInputStream(fis); int num = dis.readInt(); double pi = dis.readDouble(); char c = dis.readChar(); String str = dis.readUTF(); System.out.println(num); System.out.println(pi); System.out.println(c); System.out.println(str); dis.close(); fis.close(); } catch (FileNotFoundException e) { e.printStackTrace(); } catch (IOException e) { e.printStackTrace(); } } }
练习:
/** * 1.使用输入流读取标准答案和每个学生的答案 * 2.比较标准答案和学生答案进行判卷,并统计学员分数 * 3.将学员名称和分数输出到指定的文件中 * 技能点: * File 类 * FileReader/BufferedReader * FileWriter/BufferedWriter * String 类 * equals方法:比较内容是否相同 * substring(int begin,int end):字符串截取[begin,end) * indexOf(String s):索引指定字符第一次出现的下标位置 */ public class Homework2 { public static void main(String[] args) { try { File answerFile = new File("D:/test/answer/answer.txt");//保存标准答案的文件 File stusFile = new File("D:/test");//保存学生答案的文件夹 File resultFile = new File("D:/test/result/result.txt");//保存答案的文件 FileWriter fw = new FileWriter(resultFile); BufferedWriter bw = new BufferedWriter(fw); //获取学生答案 File[] stus = stusFile.listFiles(); for (File file : stus) { int score=0;//统计学生分数 if(file.isFile()){//判断是否为文件 FileReader anwserFr = new FileReader(answerFile); BufferedReader answerBr = new BufferedReader(anwserFr); String studentName = file.getName(); String name = studentName.substring(0,studentName.indexOf(".")); FileReader stuFr = new FileReader(file); BufferedReader stuBr = new BufferedReader(stuFr); String stuAnswer; while((stuAnswer=stuBr.readLine())!=null){//读取学生答案 String answer = answerBr.readLine();//读取标准答案 // System.out.println(stuAnswer+"\t"+answer); if(answer.equals(stuAnswer)){ score+=10;//计算学生得分 } } //将学生的成绩和姓名写入到result.txt中 bw.write(name+"\t"+score); bw.newLine(); bw.flush(); //释放资源 stuBr.close(); stuFr.close(); answerBr.close(); anwserFr.close(); } } bw.close(); fw.close(); } catch (FileNotFoundException e) { e.printStackTrace(); } catch (IOException e) { e.printStackTrace(); } } }
IO—Data
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。