1.转换流
import java.io.*;
//对于所有文件都是有编码格式
//对于我们来说,TXT和Java文件一般来讲有三中编码
//ISO8859-1,西欧编码,是纯粹的英文编码,并不适用汉字
//GBK和UTF—8,这二种编码适用于中文和英文
//我们一般使用UTF—8编码
public class Test3 {
public static void main(String[] args) {
try {
Test3.testInputStreamReader();
Test3.testOutputStreamWriter();
} catch (Exception e) {
e.printStackTrace();
}
}
/*
转换输入流 此IDEA编码类型被咱设为UTF-8
注意 在转换字符流的时候,设置的字符集编码要与读取文件的数据的编码一致 不然会出现乱码
InputStreamReader
*/
//转换字节输入流为字符输入流
public static void testInputStreamReader()throws Exception{
FileInputStream fs=new FileInputStream("E:\\IDEAproject\\src\\b\\tt5.txt");
//字节流转化为字符流
InputStreamReader in=new InputStreamReader(fs,"UTF-8");//参数一是字节流,参数二是编码
char c[]=new char[100];
int len=0;
while((len=in.read(c))!=-1){
System.out.println(new String(c,0,len));
}
in.close();
fs.close();
}
//转换字节输出流为字符输出流
public static void testOutputStreamWriter()throws Exception{
FileOutputStream out=new FileOutputStream("E:\\IDEAproject\\src\\b\\tt6.txt");
OutputStreamWriter os=new OutputStreamWriter(out,"UTF-8");
os.write("你好世界");
os.flush();
os.close();
out.close();
}
}
运行结果:
这是转换流程序专用的文本文档喵
2.标准输入输出流
//标准输入输出流
import java.io.BufferedReader;
import java.io.InputStreamReader;
public class Test4 {
public static void main(String[] args) {
try {
Test4.testSystemIn();
} catch (Exception e) {
e.printStackTrace();
}
}
public static void testSystemIn()throws Exception{
//创建一个接收键盘输入数据的输入流
InputStreamReader is=new InputStreamReader(System.in);
//把输入流放到缓冲流里
BufferedReader br=new BufferedReader(is);
String str="";//定义一个临时接收数据的字符串
while((str=br.readLine())!=null){
System.out.println(str);
}
br.close();
is.close();
}
}
运行结果:
abc
abc
糖醋酱板鸭
糖醋酱板鸭
//把控制台输入的内容写到TXT文件中,当接收到字符串over就结束程序的运行
public static void writeTXT()throws Exception{
//创建一个接收键盘输入流
InputStreamReader is=new InputStreamReader(System.in);
//把输入流放到缓冲流
BufferedReader br=new BufferedReader(is);
BufferedWriter out=new BufferedWriter(new FileWriter("E:\\IDEAproject\\src\\b\\tt7.txt"));
String line="";
while((line=br.readLine())!=null){
if(line.equals("over")){
break;
}
//读取的每一行都写入指定的TXT文件中
out.write(line);
}
out.flush();
out.close();
br.close();
}
3.数据流
import java.io.DataInputStream;
import java.io.DataOutputStream;
import java.io.FileInputStream;
import java.io.FileOutputStream;
/*
数据流,专门用来做基本数据结构的读写
*/
public class Test5 {
public static void main(String[] args) {
try {
Test5.testDataOutputStream();
Test5.testDataInputStream();
} catch (Exception e) {
e.printStackTrace();
}
}
/*
数据输出流 DataOutputStream
用数据输出流写到文件中的基本数据类型的数据,是乱码的,不能直接辨认出来,需要数据的输入流来读取
*/
public static void testDataOutputStream()throws Exception{
DataOutputStream out=new DataOutputStream(new FileOutputStream("E:\\IDEAproject\\src\\b\\tt8.txt"));
out.writeInt(14);
out.writeBoolean(true);
}
/*
数据输入流 DataInputStream
用数据输入流读取数据输出流写到文件中的数据时,要保证使用和当时写的数据类型一致的类型读取
*/
public static void testDataInputStream()throws Exception{
DataInputStream in=new DataInputStream(new FileInputStream("E:\\IDEAproject\\src\\b\\tt8.txt"));
System.out.println(in.readInt());
System.out.println(in.readBoolean());
in.close();
}
}
运行结果:
14
true
注意:用数据输出流写到文件中的基本数据类型的数据,是乱码的,不能直接辨认出来,需要数据的输入流来读取