输入输出
输入输出 1.编写TextRw.java的Java应用程序,程序完成的功能是:首先向TextRw.txt中写入自己的学号和姓名,读取TextRw.txt中信息并将其显package com.hanqi.test;
import java.io.File; import java.io.FileInputStream; import java.io.FileOutputStream; import java.io.IOException; public class Zuoye { public static void main(String[] args) { // TODO 自动生成的方法存根 //输出流 从内存流向文件 写入的姓名学号在文件中显示内容 try { //构造方法确定目标文件 //如果文件不存在,自动创建该文件,但不自动创建目录 //如果目录不存在,会引发异常 //FileOutputStream out=new FileOutputStream("d:/text03.txt"); File file=new File("d:/Zytext"); if(!file.exists()) { file.mkdirs(); } FileOutputStream out=new FileOutputStream("d:/Zytext/TextRw.txt"); //写入的内容 String nr="我叫韩如月\r\n201219045110"; //实际是把数据转为byte数组 //兼容任何数据类型 byte[]b=nr.getBytes(); //写入数据到文件中 //byte[] 内容数组 //思考题,把输出流的写入方式由覆盖改为追加 out.write(b); out.close();//关闭流 System.out.println("输出流写入文件成功"); //输入流 从文件把数据读入内存 FileInputStream in=new FileInputStream("d:/Zytext/TextRw.txt"); //装载数据的数组 byte[]b1=new byte[1024];//1k大小 //每次读取数据的长度 int i=0; String str=""; //读取数据 //分段按顺序读取,每次最多读取数组长度大小的数据 //返回值表示每次读取的数据长度,如果数据读完或读取失败,返回-1 while((i=in.read(b1))>0) { //组合数据 //参数1-起始位置;i-数据长度 str+=new String(b1,0,i);//参数只有b1时,后用空格,加上0,i就没有 } System.out.println("i="+i); System.out.println("Str="+str); in.close(); } catch (Exception e) { // TODO 自动生成的 catch 块 e.printStackTrace(); } }
2.编写IoDemo.java的Java应用程序,程序完成的功能是:首先读imporimport java.io.FileNotFoundException;
try { File file=new File("d:/text.txt"); file.createNewFile(); System.out.println("创建文件"+file.getAbsolutePath()+"成功"); FileInputStream in = new FileInputStream("d:/text.txt") ; byte[ ] b = new byte[1024] ; String s = "" ; int i = -1 ; while((i=in.read(b))>0) { s += new String(b,0,i) ; } System.out.println("输入完成!"); System.out.println("读取到的内容为:"+s); in.close(); System.out.println("请输入修改后的名字:"); Scanner sc = new Scanner(System.in) ; String str = sc.nextLine( ) ; File file1 = new File("d:/text.txt"); file.renameTo(new File("d:/"+str)) ; FileOutputStream out = new FileOutputStream(file) ; byte[ ] by = str.getBytes() ; out.write(by); out.close(); System.out.println("输出完成!"); System.out.println("改名成功!"); } catch (Exception e) { e.printStackTrace(); } } }
3.编写BinIoDemo.java的Java应用程序,程序完成的功能是:完成1.doc文件的复制,复制以后的文件的名称为自己的学号姓名.doc。
try { //创个文件 File file=new File("d:/1.doc"); file.createNewFile(); System.out.println("创建文件"+file.getAbsolutePath()+"成功"); //读取,输入流 FileInputStream in=new FileInputStream("d:/1.doc"); // byte[]b=new byte[1024];//1kb=1024byte int i=-1;//文件读完了会显示-1 //写输出流 FileOutputStream out=new FileOutputStream("d:/韩如月2012.doc"); //边读边写 while((i=in.read(b))>0) { //写 out.write(b,0,i); } out.close(); in.close(); System.out.println("复制成功"); } catch (Exception e) { // TODO 自动生成的 catch 块 e.printStackTrace(); } } }