Java IO流_2
一.转换流
字节流--->字符流的转换
OutputStreamWriter
是writer的子类
public static void main(String[] args) throws IOException {
// FileWriter fw = new FileWriter(new File("E:" + File.separator + "yang.txt"));
// fw.write("深圳"); // 一个中文两个字节
// fw.flush();
// fw.close();
//
// FileReader fr=new FileReader(new File("E:" + File.separator + "yang.txt"));
// char [] ch=new char[1024];
// int len=fr.read(ch);
// System.out.println(new String(ch,0,len));
//将字符流转为字节流
OutputStreamWriter out=new OutputStreamWriter(new FileOutputStream(new File("D:"+File.separator+"xiao.txt")),"UTF-8");
out.write("广州");
out.flush();
out.close();
// InputStreamReader in=new InputStreamReader(new FileInputStream(new File("D:"+File.separator+"xiao.txt")),"UTF-8");
// char [] ch1=new char[1024];
// int len1=in.read(ch1);
// System.out.println(new String(ch1,0,len1));
InputStreamReader
是Reader的子类
FileReader fr=new FileReader(new File("E:" + File.separator + "yang.txt"));
// char [] ch=new char[1024];
// int len=fr.read(ch);
// System.out.println(new String(ch,0,len));
// InputStreamReader in=new InputStreamReader(new FileInputStream(new File("D:"+File.separator+"xiao.txt")),"UTF-8");
// char [] ch1=new char[1024];
// int len1=in.read(ch1);
// System.out.println(new String(ch1,0,len1));
二.标准输入输出
InputStream in=System.in;
PrintStream ou=System.out;
ou.println("Ok")
三.内存操作流
内存操作流一般在生成一些临时信息时才会使用,它是唯一不用 关闭的流,关不关都可以
ByteArrayInputStream
主要是使用构造方法将全部的内容读取 到内存中
ByteArrayOutputStream
public class Demo7 {
public static void main(String[] args) throws IOException {
/*
* 数据流
* 处理流
*/
File f=new File("D:"+File.separator+"test.txt");
DataInputStream in=new DataInputStream(new FileInputStream(f));
method1();
}
public static void method1() throws IOException {
File f1=new File("D:"+File.separator+"data.txt");
DataOutputStream dou= new DataOutputStream(new FileOutputStream(f1));
//写数据
dou.writeInt(10); //int 4
dou.writeByte(1); // 1
dou.writeChar('a'); //1
dou.writeUTF("深圳"); //6
dou.flush();
dou.close();
}
}
将内容从内存中取出
四. 数据流
DataInputStream
DataOutputStream
五.对象流
ObjectInputStream //读
ObjectInputStream bio=new ObjectInputStream(new FileInputStream(("E:"+File.separator+"object.txt")));
Student stu2=(Student) bio.readObject();
Student stu3=(Student) bio.readObject();
Student stu4=(Student) bio.readObject();
System.out.println(stu2.getName()+"---"+stu2.getAge());
System.out.println(stu3.getName()+"---"+stu3.getAge());
System.out.println(stu4.getName()+"---"+stu4.getAge());
}
ObjectOutputStream //写
public static void method(File f) throws IOException {
Student s1=new Student("小麦",12);
Student s2=new Student("小麦",12);
Student s3=new Student("小唛",12);
FileOutputStream fou=new FileOutputStream(f);
ObjectOutputStream obu=new ObjectOutputStream(fou);
obu.writeObject(s1);
obu.writeObject(s2);
obu.writeObject(s3);
obu.flush();
obu.close();
System.out.println("写入成功");
}
六. 打印流
PrintStrem
字节
PrintWriter
字符
public class Demo8 {
public static void main(String[] args) throws FileNotFoundException {
/*
* 打印流:只有输出,没有输入
* PrintStrem 字节
* PrintWriter 字符
*/
//打印到控制台
PrintWriter pw=new PrintWriter(System.out);
//打印到文件里面
PrintWriter pw1=new PrintWriter(new FileOutputStream(new File("D:"+File.separator+"print.txt")));
String str="hello world";
pw1.println(str);
//pw.write(str);
pw1.flush();
pw1.close();
}
}