字符输入流的简化写法
InputStreamReader isr = new InputStreamReader(new FileInputStream("木兰诗.txt"));
FileReader fr = new FileReader("木兰诗.txt");
char[] chars = new char[5];
fr.read(chars);
System.out.println(new String(chars));
字符输出流简化
FileWriter fw = new FileWriter("木兰诗.txt");
fw.write("问女何所思, 问女何所忆");
fw.flush();
注意: 简化流, 无法指定读取的时候, 写入的时候 按照哪一种码表进行
如果
想要指定, 只能使用的普通的转化流
long startTime = System.currentTimeMillis();
int num = 1;
for (int i = 0; i < 100000; i++) {
num++;
}
FileOutputStream fos = new FileOutputStream("木兰诗.txt");
OutputStreamWriter osw = new OutputStreamWriter(fos, "GBK");
osw.write("问女何所思, 问女何所忆");
osw.flush();
long endTime = System.currentTimeMillis();
System.out.println("总耗时毫秒数 -> " + (endTime - startTime));
同理,input 写法:
FileInputStream fis = new FileInputStream("木兰诗.txt");
InputStreamReader isr = new InputStreamReader(fis, "GBK");
缓冲字符输入流, 整行读取
注意: readLine读取一行数据作为字符串返回结果, 但是不会读取末尾的换行符号
FileReader fr = new FileReader("木兰诗.txt");
BufferedReader br = new BufferedReader(fr);
String line1 = br.readLine();
String line2 = br.readLine();
FileWriter fw = new FileWriter("木兰诗2.txt");
BufferedWriter bw = new BufferedWriter(fw);
bw.write(line1);
bw.newLine();
bw.write(line2);
br.close();
bw.close();
基本数据类型流
FileOutputStream fos = new FileOutputStream("基本数据.txt");
DataOutputStream dos = new DataOutputStream(fos);
dos.writeBoolean(false);
dos.writeLong(32L);
dos.close();
FileInputStream fis = new FileInputStream("基本数据.txt");
DataInputStream dis = new DataInputStream(fis);
boolean result = dis.readBoolean();
long longResult = dis.readLong();
System.out.println("result = " + result);
System.out.println("longResult = " + longResult);
内存操作流 了解
内存操作流, 不从磁盘中读取或者写入数据, 内存操作流, 从内存中读取数据, 写入到另一个内存中
操作字节数组
ByteArrayInputStream
byte[] bytes = "abc".getBytes();
ByteArrayInputStream bais = new ByteArrayInputStream(bytes);
byte[] byteArray = new byte[3];
bais.read(byteArray);
System.out.println(Arrays.toString(byteArray));
ByteArrayOutputStream
ByteArrayOutputStream baos = new ByteArrayOutputStream();
byte[] bytes = "abc".getBytes();
baos.write(bytes);
String result = baos.toString();
System.out.println("result = " + result);
操作字符数组
CharArrayReader
CharArrayWrite
操作字符串
StringReader
StringWriter
final修饰变量, 变量值不可变, 但是可以在代码块中执行一次的赋值 打印流 打印流是一种输出流, 只不过, 方向确定, 从内存中输出到别的位置, 默认System.out中的打印流是输出到操作系统的控制台中
1.0版
System.out.println("hello World");
PrintStream ps = new PrintStream("打印流输出目标文件.txt");
ps.println("hello World");
ps.flush();
ps.close();
2.0版
PrintStream ps = new PrintStream("打印流输出目标文件.txt");
System.setOut(ps);
System.out.println("程序员 打响指");
System.out.println("程序员 打响指");
System.out.println("程序员 打响指");
System.out.println("程序员 打响指");
System.out.println("程序员 打响指");
System.out.printf("您的得分是%.2f", 81.1234);