第八章FileIO

    xiaoxiao2022-07-02  116

    一选择题 1—5AABCD

    二简答题 1简述java中流的分类 答(1)按照流的流向进行划分 输出流:只能从中读取数据而不能向其中写入数据 输入流:只能向其中写入数据而不能从中读取数据 (2)按照程序运行所在的内存角度划分 输入流由InputStream和Reade作为基类 输出流由OutputStream和Writer作为基类 按照操作的数据单元不同可以划分为字节流和字节符

    2文本文件的读写过程中需要处理的异常有哪些 答FileNotFoundException和IOException

    3使用BufferedReader和BufferedWriter复制C:/source.txt到D:/target.txt查看文件内容和大小是否一致 答package jbit.io.homework;

    import java.io.BufferedReader; import java.io.BufferedWriter; import java.io.File; import java.io.FileNotFoundException; import java.io.FileReader; import java.io.FileWriter; import java.io.IOException;

    public class ReaderAndWriterFile { public static void main(String[] args) { BufferedReader reader=null; BufferedWriter writer=null; try { //创建 FileReader对象和FileWriter对象. FileReader fr = new FileReader(“c:\source.txt”); FileWriter fw = new FileWriter(“d:\target.txt”); //创建 输入、输入出流对象. reader = new BufferedReader(fr); writer = new BufferedWriter(fw); String line = null; StringBuffer sbf=new StringBuffer(); //循环读取并追加字符 while ((line = reader.readLine()) != null) { sbf.append(line); } writer.write(sbf.toString()); //写入文件 } catch (FileNotFoundException e) { System.out.println(“无此文件”); }catch (IOException e) { e.printStackTrace(); }finally{ //关闭 reader 和 writer. try { if(reader!=null) reader.close(); if(writer!=null) writer.close(); }catch (IOException e) { e.printStackTrace(); } } } }

    4编写一个程序读取Windows目录下的win.ini文件并输出其内容 答package jbit.io.homework;

    import java.io.DataInputStream; import java.io.DataOutputStream; import java.io.FileInputStream; import java.io.FileNotFoundException; import java.io.FileOutputStream; import java.io.IOException; import java.io.Writer;

    public class ReadIinFile { public static void main(String[] args) { FileInputStream fis = null; DataInputStream dis = null; try { //创建输出流对象 fis = new FileInputStream(“C:\Windows\win.ini”); dis = new DataInputStream(fis); //创建输入流对象 int temp; //读取文件并写入文件 while ( (temp = dis.read()) != -1) { System.out.print((char)temp) } }catch (FileNotFoundException e) { System.out.println(“无此文件”); }catch (IOException ioe) { ioe.printStackTrace(); }finally{ try { if(fis!=null) fis.close(); } catch (IOException e) { e.printStackTrace(); } } } }

    三上机练习 1操作文件或目录属性

    package jbit.io; import java.io.*; public class FileMethods { public static void main(String[] args) { FileMethods fm=new FileMethods(); File file=null; file=new File("D:\\myDoc\\test.txt"); fm.create(file); fm.showFileInfo(file); fm.delete(file); } /** * 创建文件的方法 * @param file 文件对象 */ public void create(File file){ if(!file.exists()){ try { file.createNewFile(); System.out.println("文件已创建!"); } catch (IOException e) { e.printStackTrace(); } } } /** * 删除文件 * @param file 文件对象 */ public void delete(File file){ if(file.exists()){ file.delete(); System.out.println("文件已删除!"); } } /** * 显示文件信息 * @param file 文件对象 */ public void showFileInfo(File file){ if(file.exists()){ //判断文件是否存在 if(file.isFile()){ //如果是文件 System.out.println("名称:" + file .getName()); System.out.println("相对路径: " + file.getPath()); System.out.println("绝对路径: " + file.getAbsolutePath()); System.out.println("文件大小:" + file.length()+ " 字节"); } if(file.isDirectory()){ System.out.println("此文文件是目录"); } }else System.out.println("文件不存在"); } }

    2复制文本文件

    package jbit.io; import java.io.FileInputStream; import java.io.FileNotFoundException; import java.io.FileOutputStream; import java.io.IOException; public class InputAndOutputFile { public static void main(String[] args) { FileInputStream fis=null; FileOutputStream fos=null; try { //1、创建输入流对,负责读取D:/ 我的青春谁做主.txt文件 fis = new FileInputStream("D:/我的青春谁做主.txt"); //2、创建输出流对象 fos = new FileOutputStream("C:/myFile/myPrime.txt",true); //3、创建中转站数组,存放每次读取的内容 byte[] words=new byte[1024]; //4、通过循环实现文件读取 while((fis.read())!=-1){ fis.read(words); fos.write(words, 0, words.length); } System.out.println("复制完成,请查看文件!"); } catch (FileNotFoundException e) { e.printStackTrace(); } catch (IOException e) { e.printStackTrace(); }finally{ //5、关闭流 try { if(fos!=null) fos.close(); if(fis!=null) fis.close(); } catch (IOException e) { e.printStackTrace(); } } } }

    3替换文本文件内容

    package jbit.io; import java.io.BufferedReader; import java.io.BufferedWriter; import java.io.File; import java.io.FileReader; import java.io.FileWriter; import java.io.IOException; public class ReaderAndWriterFile { public void replaceFile(String file1,String file2) { BufferedReader reader = null; BufferedWriter writer = null; try { //创建 FileReader对象和FileWriter对象. FileReader fr = new FileReader(file1); FileWriter fw = new FileWriter(file2); //创建 输入、输入出流对象. reader = new BufferedReader(fr); writer = new BufferedWriter(fw); String line = null; StringBuffer sbf=new StringBuffer(); //循环读取并追加字符 while ((line = reader.readLine()) != null) { sbf.append(line); } System.out.println("替换前:"+sbf); /*替换内容*/ String newString=sbf.toString().replace("{name}", "欧欧"); newString = newString.replace("{type}", "狗狗"); newString = newString.replace("{master}", "李伟"); System.out.println("替换后:"+newString); writer.write(newString); //写入文件 } catch (IOException e) { e.printStackTrace(); }finally{ //关闭 reader 和 writer. try { if(reader!=null) reader.close(); if(writer!=null) writer.close(); } catch (IOException e) { e.printStackTrace(); } } } public static void main(String[] args) { ReaderAndWriterFile obj = new ReaderAndWriterFile(); obj.replaceFile("c:\\pet.template", "D:\\myDoc\\pet.txt"); } }
    最新回复(0)