1.数据流
package leetcode0606.IO;
import java.io.DataOutputStream;
import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.IOException;
/**
* 数据专属的流
* 可以将数据连通数据的类型一并写入文件
* 这个文件不是普通文件,一般都打不开(用记事本打开后乱码)
*/
public class DataOutputStreamTest01 {
public static void main(String[] args) {
DataOutputStream dos = null;
try {
dos = new DataOutputStream(new FileOutputStream("dataTest"));
byte b=100;
short s=200;
int i=300;
long l=400L;
float f=3.0F;
dos.writeByte(b);
dos.writeShort(s);
dos.writeInt(i);
dos.writeLong(l);
dos.writeFloat(f);
} catch (FileNotFoundException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}finally {
if (dos != null) {
try {
dos.close();
} catch (IOException e) {
e.printStackTrace();
}
}
}
}
}
package leetcode0606.IO;
import java.io.*;
public class DataInputStreamTest01 {
public static void main(String[] args) {
DataInputStream dis = null;
try {
dis = new DataInputStream(new FileInputStream("dataTest"));
byte b = dis.readByte();
System.out.println(b);
short i = dis.readShort();
System.out.println(i);
} catch (FileNotFoundException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}
if (dis != null) {
try {
dis.close();
} catch (IOException e) {
e.printStackTrace();
}
}
}
}
2.标准输出流
package leetcode0606.IO;
import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.PrintStream;
/**
* printstream 标准的字节输出流,默认输出到控制台
*/
public class PrintStreamTest01 {
public static void main(String[] args) {
System.out.println("hello");
PrintStream ps = System.out;
ps.println("geeee");
//标准输出流不需要关闭
//改变输出方向,不在控制台打印
try {
System.setOut(new PrintStream(new FileOutputStream("logger",true)));
System.out.println("aaaaaaaa");
System.out.println("aaaaaaaa");
System.out.println("aaaaaaaa");
System.out.println("aaaaaaaa");
} catch (FileNotFoundException e) {
e.printStackTrace();
}
}
}
3.自写日志系统
package leetcode0606.IO;
import javax.xml.crypto.Data;
import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.PrintStream;
import java.text.SimpleDateFormat;
import java.util.Date;
/**
* 日志工具
*/
public class Logger {
public static void log(String msg){
try {
PrintStream out = new PrintStream(new FileOutputStream("log.txt", true));
//
System.setOut(out);
Date date = new Date();
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM--dd HH:mm:ss SSS");
String Time = sdf.format(date);
System.out.println(Time + ":" + msg);
} catch (FileNotFoundException e) {
e.printStackTrace();
}
}
}
测试类
package leetcode0606.IO;
public class LogTest {
public static void main(String[] args) {
Logger.log("dadadadads");
Logger.log("dadas");
Logger.log("dadadadads");
Logger.log("dadadadads");
Logger.log("ddadads");
Logger.log("dadadadads");
Logger.log("dadadadads");
Logger.log("dadadadads");
Logger.log("dadadadads");
}
}
输出结果 log.txt
2022-06--30 22:07:38 103:dadadadads
2022-06--30 22:07:38 145:dadas
2022-06--30 22:07:38 145:dadadadads
2022-06--30 22:07:38 145:dadadadads
2022-06--30 22:07:38 147:ddadads
2022-06--30 22:07:38 148:dadadadads
2022-06--30 22:07:38 148:dadadadads
2022-06--30 22:07:38 149:dadadadads
2022-06--30 22:07:38 149:dadadadads