Java常见的IO流的基本操作!
回顾
java对文件的创建删除操作可查看这里:Java对本地目录和文件的创建以及删除操作!
1,java中的IO流介绍
在java io流中存在两种流,字节流和字符流,他们两者又可细分为输入流,输出流,这里我们主要理解字节流和字符流,以及输入流,输出流。
字节流:是我们常见的流,处理我们的图片,视频,文本数据等等数据,这些数据都是以字节流存在我们的电脑中的。
字符流:字符流只能处理纯文本数据。
输入流:针对我们的编写程序而言,指程序读取本地存在的文件流。可以字节流读取也可以字符流读取。
输出流:针对我们的编写程序而言,指将我们想要的数据写出到我们的本地文件中,可以字节流写入也可以字符流写入。
可以用这张图来理解他们之间的关系
2,字节输入流及字节输出流的简单使用
import org.junit.Test;
import java.io.*;
/**
* @author ganxiang
* IDE IntelliJ IDEA
* @project_name and filename HadoopTraining FileStream
* @date 2020/05/05 0005 12:44
*/
//字节流处理
public class FileStream {
String path="D:\\StudyDemo\\IDEA\\TestDir\\createFile.txt";
@Test
public void outputStream() throws IOException {
FileOutputStream outputStream =new FileOutputStream(path);
outputStream.write("hello everyone".getBytes());
outputStream.close();
System.out.println("字节流写入文件成功~");
}
@Test
public void inputStream() throws IOException {
FileInputStream inputStream =new FileInputStream(path);
//1,字符串输出
//available()获取可读的字节数
// byte[] data=new byte[inputStream.available()];
// inputStream.read(data);
// System.out.println(new String(data));
//2,字符输出
int f =inputStream.read();
while (f>0){
System.out.print((char)f);
f=inputStream.read();
}
inputStream.close();
System.out.println("以字节流读取文件成功~");
}
}
OutputStream测试
IutputStream测试
3,字符输入流及字符输出流的简单使用
import org.junit.Test;
import java.io.*;
/**
* @author ganxiang
* IDE IntelliJ IDEA
* @project_name and filename HadoopTraining FileReaderAndWriter
* @date 2020/05/05 0005 13:18
*/
//字符流处理
public class FileReaderAndWriter {
String path="D:\\StudyDemo\\IDEA\\TestDir\\createFile.txt";
@Test //读取字符流
public void reader() throws IOException {
FileReader reader =new FileReader(path);
//将读取的字符转换为ASCII编码
int f =reader.read();
while (f>=0){
System.out.print(String.valueOf((char)f));//将ASCII编码转换为字符输出
f=reader.read();//读取下一个字符
}
reader.close();
}
@Test //写出字符流
public void writer() throws IOException {
FileWriter writer =new FileWriter(path);
//1,BufferedWriter()写出数据
BufferedWriter bufferedWriter =new BufferedWriter(writer);
bufferedWriter.write("welcome to here\n");//换行写入
bufferedWriter.write("你好!");
bufferedWriter.close();
//2,FileWriter()写出数据
// writer.write("今天30度\n");
// writer.write("真热");
// writer.close();
System.out.println("写入成功~");
}
}
Writer测试
Reader测试
4,字节流转换为字符流的简单使用
这里简单来说,将字节流的输入输出转换为字符流的输入输出操作。
import org.junit.Test;
import java.io.*;
import java.util.Scanner;
/**
* @author ganxiang
* IDE IntelliJ IDEA
* @project_name and filename HadoopTraining Transform
* @date 2020/05/05 0005 16:26
*/
public class Transform {
String path="D:\\StudyDemo\\IDEA\\TestDir\\createFile.txt";
String path1="D:\\StudyDemo\\IDEA\\TestDir\\1.txt";
@Test //字节输入流转换为字符输入流->将文件字节流读取转换为字符流读取
public void inputStreamToReader() throws IOException {
FileInputStream inputStream =new FileInputStream(path);
InputStreamReader inputStreamReader =new InputStreamReader(inputStream);
char [] chars =new char[200];
inputStreamReader.read(chars);
System.out.println(new String(chars));
inputStreamReader.close();
System.out.println("将文件字节流读取转换为字符流读取成功~");
}
@Test //字节输出流流转换为字符输出流->将文件字节流写入转换为字符流写入
public void outputStreamToWriter() throws IOException {
FileOutputStream outputStream =new FileOutputStream(path1);
OutputStreamWriter outputStreamWriter =new OutputStreamWriter(outputStream);
outputStreamWriter.write("测试字节输出流转换为字符输出流写入文件~");
outputStreamWriter.close();
System.out.println("将文件字节流写入转换为字符流写入成功~");
}
}
虽然都是一些API的简单运用,但都看到这儿了点赞走一波呗,哈哈。