所花时间:5h
代码行:100行
这周自己学了一些io知识点,原来一点输入流和输出流都不知道。只知道这些代码可以完成这些这次自己也系统的复习了一下这个
打印流:
package com.cloud.day1;
import java.io.File;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.PrintStream;
/*
打印流(printStream) 打印流可以打印任意类型的数据,而且打印数据之前都会先把数据转换成字符串再进行打印。
*/
class Animal {
String name;
String color;
public Animal(String name, String color) {
this.name = name;
this.color = color;
}
@Override
public String toString() {
return "Animal [name=" + name + ", color=" + color + "]";
}
}
public class Demo1 {
public static void main(String[] args) throws IOException {
File file = new File("E:\\a.txt");
//创建一个打印流
/*
PrintStream printStream = new PrintStream(file);
printStream.println(123);
printStream.println("spring");
Animal animal = new Animal("Cat","black");
printStream.println(animal);
//默认标准的输出流就是向控制台输出
System.out.println(printStream);
*/
//收集日常的日志信息
File logFile = new File("E:\\execption.log");
PrintStream printStream = new PrintStream(new FileOutputStream(logFile,true));
try {
int c = 4/0;
System.out.println("c="+c);
int[] arr = null;
System.out.println(arr.length);
} catch (Exception e) {
e.printStackTrace();
}
}
}
转换流:
package com.cloud.day1;
import java.io.BufferedReader;
import java.io.File;
import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.InputStream;
import java.io.InputStreamReader;
import java.io.OutputStreamWriter;
/*
转换流:
输入字节流的转换流:InputStreamReader 是字节流通向字符流的桥
InputStreamReader
输出字节流的转换流:
OutputStreamWriter 可以把输出字节流转换成输出字符流。
转换流的作用:
1. 如果目前所获取到的是一个字节流需要转换字符流使用,这时候就可以使用转换流。 字节流----> 字符流
2. 使用转换流可以指定编码表进行读写文件。
*/
public class Demo3 {
public static void main(String[] args) throws IOException {
//readTest();
//writeTest();
readTest2();
}
//使用输入字节流的转换流指定码表进行读取文件数据
public static void readTest2() throws IOException{
File file = new File("D:\\a.txt");
FileInputStream fileInputStream = new FileInputStream(file);
//这里的编码如果使用UTF-8会发生乱码
InputStreamReader inputStreamReader = new InputStreamReader(fileInputStream,"gbk");
char []buf = new char[1024];
int length = 0;
while((length = inputStreamReader.read(buf))!=-1){
System.out.println(new String(buf , 0 , length));
}
}
public static void writeTest() throws IOException{
File file = new File("D:\\a.txt");
FileOutputStream fileOutputStream = new FileOutputStream(file);
OutputStreamWriter outputStreamWriter = new OutputStreamWriter(fileOutputStream);
outputStreamWriter.write("Hello,春天");
outputStreamWriter.close();
}
/**
* 控制台输入:asa
* 内容:asa
* @throws IOException
*/
public static void readTest() throws IOException{
//获取标准的输入流
InputStream in = System.in;
//字节流转换成字符流
InputStreamReader inputStreamReader = new InputStreamReader(in);
//使用字符流的缓冲类
BufferedReader bufferedReader = new BufferedReader(inputStreamReader);
String line = null;
while((line = bufferedReader.readLine())!=null){
System.out.println("内容:"+line);
}
}
}
浙公网安备 33010602011771号