Java中IO流函数的使用与示例
IO流是Java语言中的一种处理输入输出的机制,它的主要作用是在程序与外部设备(如文件、网络等)之间进行数据传输,也可以实现数据的读取和写入操作,充分发挥程序的功能性。Java中常用的IO流包括字节流和字符流两类。
字节流
字节流以字节为单位,读写二进制数据,主要用于处理图像、音频、视频等媒体文件。Java中的字节流被封装在java.io包中,主要包括FileInputStream、FileOutputStream、DataInputStream和DataOutputStream等类。
FileInputStream类
这个类用来读取文件,并以字节为单位传输。可以使用构造函数实例化该类,参数为待读取的文件。
示例:
try{
FileInputStream input = new FileInputStream("test.txt");
int i;
while((i=input.read()) != -1){
System.out.print((char)i);
}
input.close();
}catch(Exception e){
e.printStackTrace();
}
FileOutputStream类
这个类用来写入文件,并以字节为单位传输。同样可以使用构造函数实例化该类,参数为待写入的文件。
示例:
try{
FileOutputStream output = new FileOutputStream("test.txt");
String str = "Hello World!";
byte[] bytes = str.getBytes();
output.write(bytes);
System.out.println("Data written to the file.");
output.close();
}catch(Exception e){
e.printStackTrace();
}
DataInputStream类
这个类可以通过读取字节流中的基本数据类型来进行输入操作,并可以用来读取由DataOutputStream写入的数据。
示例:
try{
FileInputStream file = new FileInputStream("test.txt");
DataInputStream input = new DataInputStream(file);
System.out.println(input.readUTF());
System.out.println(input.readInt());
System.out.println(input.readDouble());
input.close();
}catch(Exception e){
e.printStackTrace();
}
DataOutputStream类
这个类可以通过写入字节流中的基本数据类型来进行输出操作,并可以用来写入基本数据类型的值。
示例:
try{
FileOutputStream file = new FileOutputStream("test.txt");
DataOutputStream output = new DataOutputStream(file);
output.writeUTF("Hello World!");
output.writeInt(123);
output.writeDouble(123.45);
output.close();
System.out.println("Data written to the file.");
}catch(Exception e){
e.printStackTrace();
}
字符流
字符流以字符为单位,读写文本数据,主要用于读写文本文件和其他调用文本文件时的数据格式转换。Java中的字符流被封装在java.io包中,主要包括FileReader、FileWriter、BufferedReader和PrintWriter等类。
FileReader类
这个类用来读取文本文件,并以字符为单位传输。可以使用构造函数实例化该类,参数为待读取的文件。
示例:
try{
FileReader file = new FileReader("test.txt");
int ch;
while((ch=file.read()) != -1){
System.out.print((char)ch);
}
file.close();
}catch(Exception e){
e.printStackTrace();
}
FileWriter类
这个类用来写入文本文件,并以字符为单位传输。同样可以使用构造函数实例化该类,参数为待写入的文件。
示例:
try{
FileWriter file = new FileWriter("test.txt");
String str = "Hello World!";
file.write(str);
System.out.println("Data written to the file.");
file.close();
}catch(Exception e){
e.printStackTrace();
}
BufferedReader类
这个类可以通过按行读取字符流来进行输入操作,并可以用来读取文本中的所有内容。
示例:
try{
FileReader file = new FileReader("test.txt");
BufferedReader input = new BufferedReader(file);
String str;
while((str=input.readLine()) != null){
System.out.println(str);
}
input.close();
}catch(Exception e){
e.printStackTrace();
}
PrintWriter类
这个类可以通过按行写入字符流来进行输出操作,并可以用来写入文本中的所有内容。
示例:
try{
PrintWriter output = new PrintWriter("test.txt");
String str = "Hello World!";
output.println(str);
output.println(123);
output.println(123.45);
output.close();
System.out.println("Data written to the file.");
}catch(Exception e){
e.printStackTrace();
}
总结
Java中的IO流是一个功能强大的处理输入输出的机制,包括字节流和字符流两类,分别用于读写二进制数据和文本数据。在使用过程中,可以根据实际需要选择不同的类来进行输入输出操作,充分发挥程序的功能性。同时,需要注意的是,在使用IO流时要仔细处理异常,避免程序出错。
