一、
利用io ,完成 文件的复制功能 (例如,d盘有个 a文件,里面有26个字母,然后给我复制到 b文件里)
答案
package org.jsoft.hk;
import java.io.BufferedInputStream;
import java.io.BufferedOutputStream;
import java.io.BufferedReader;
import java.io.BufferedWriter;
import java.io.File;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.InputStream;
import java.io.InputStreamReader;
import java.io.OutputStream;
import java.io.OutputStreamWriter;
public class CpAToB {
public static void main(String[] args) {
// TODO Auto-generated method stub
File fa=new File ("D:/a.txt"); //创建文件fa
File fb=new File ("D:/b.txt");//创建文件fb
OutputStream ot=null;//声明 输出字节流,
try {
ot=new FileOutputStream(fa);//实例化 字节流文件
for(char i='a';i<='z';i++) {//循环a~z
ot.write(i);//将a~z写入文件 并捕获异常
ot.write(32);//将"空格" 写入文件 并捕获异常
}} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}finally{
try {
ot.close();//关闭输出字节流文件 捕获抛出异常
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
System.out.println("写入a~z成功");
}
BufferedReader in=null; //声明 一个缓冲字符输入流
BufferedWriter otput=null ;//声明一个换成字符输出流
try {
//实例化 in 输入fa文件中的字节 输入字节流要想转换成输入字符流 要有InputStreamReader 这个桥梁
in=new BufferedReader(new InputStreamReader(new FileInputStream(fa)));
} catch (FileNotFoundException e1) {
// TODO Auto-generated catch block
e1.printStackTrace();
}
try {
//实例化 otput 输出到输出文件fb中 输出字节流转换成输出字符流 要有OutputStreamWriter 这个桥梁
otput=new BufferedWriter(new OutputStreamWriter(new FileOutputStream(fb)));
} catch (FileNotFoundException e1) {
// TODO Auto-generated catch block
e1.printStackTrace();
}
try {
String line; //声明 String 类型的line 存放 in读取的字符。
while((line=in.readLine())!=null){
otput.write(line);//将读取的 字符写入 otput
}
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
finally{
try {
in.close();//关闭 输入字符流 并捕获异常
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
try {
otput.close();//关闭输出字符流 并捕获异常
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
}}
二、
答案:
package org.jsoft.hk;
import java.io.File;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.FileWriter;
import java.io.IOException;
public class FileInputAndOutput {
public static void main(String[] args) {
// TODO Auto-generated method stub
File f=new File("test.txt"); //创建当前目录下test.txt文件
FileOutputStream fot=null; //声明 输出字节流
boolean b;
String s="Hello World";
if(f.exists()){ //如果文件存在,
b=true; //则b=true
try {
fot=new FileOutputStream(f,b);//在f文件内容后面 追加
byte []bt=new byte[s.length()];//创建一个 字节类型的数组长度为 字符串的长度
for(int i=0;i<bt.length;i++) //循环
{
bt[i]=(byte) (s.charAt(i));//先将字符串转换成字符,再转换成byte类型
}
try {
fot.write(bt); //将数组byte 中的内容写入输出流fot的文件f中
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} finally {
try {
fot.close();// 关闭文件输出流
System.out.println("写入成功");
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
} catch (FileNotFoundException e1) {
// TODO Auto-generated catch block
e1.printStackTrace();
}
}
FileInputStream fin=null; //声明 输入字节流
try {
fin=new FileInputStream(f); //创建 参数为文件f的 输入字节流
byte[] buf = new byte[ (int)f.length()]; //创建一个长度为文件内容长度的数组
try {
fin.read(buf) ;//将读取输入字节流 存放到定义好的数组中
String s1=new String(buf,0,buf.length); //将数组中 0~数组长度的 数组 赋给s1(String 的构造方法中有)
System.out.println(s1);//输出s1
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
finally{
try {
fin.close();//关闭流
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
} catch (FileNotFoundException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
}
三、
答案:
①、输入流 字节流 低级流
②、 int类型 读取一个数据字节
将数组长度个字节读入数组bs中
③、 将从第offset 到 第len 个字节 读入数组bs中 要读入的数组bs 从下标为offset 读到 下标为len
四、
答案:
创建新文件
不在创建
在原来内容后面追加内容
会
五、
答案:
A、B