Java中的IO流总结
File文件和目录地址名类:
File
构造方法
File(String path);
File(String parent, String path);
File(File parent,String path);
创建方法
createNewFile();//创建文件
mkdir();//创建单级目录
mkdirs();//创建多级目录
获取的方法:
getPath(); //获得构造方法File(String path);中的路径
getAbsolutePath();//获取绝对路径
getName();//获取文件的名字
length(); // 获取文件的大小。
String[] list();//返回该目录下的子文件和子目录的名字到字符串数组
File[] listFiles();返回该目录下的子文件和子目录的名字到File数组
判断的方法:
isDirectory();//是不是目录
isFile();//是不是文件
exists();//存在么
字节流——字节输出流 (以OutputStream为抽象类):
通用Write方法(继承自OutputStream抽象类):
write(int ch);
write(byte[] bys);
write(byte[] bys,int off , int len);
FileOutputStream 实际输出字节的流
构造方法:
new FileOutputStream ("a.txt");
续写的构造方法
new FileOutputStream ("a.txt",true)
BufferedOutputStream 实际输出字节的缓冲流
构造方法:
new BufferedOutputStream(new FileOutputStream ("a.txt"));
PrintStream 字节打印流
构造方法:
new PrintStream("aniki.txt");
ObjectOutputStream 序列化流,对象和字节之间的转换
构造方法:
ObjectOutputStream oos = new ObjectOutputStream(new FileOutputStream ("a.txt"));
oos.writeObject(new Student());
//(必须的) Student 必须实现 Serializable接口 标记结构。
//(推荐的) Student类里面写一个 serialVersionUID
例程:
字节流——字节输入流(以InputStream 为抽象类):
通用read方法(继承自InputStream抽象类):
int read();
int read(byte[] bys);
FileInputStream 实际输入字节的流
构造方法:
BufferedInputStream 实际输入字节的缓冲流
构造方法:
new BufferedInputStream(new FileInputStream ("a.txt"));
ObjectInputStream 序列化流 字节和对象之间的转换
构造方法:
ObjectInputStream oos = new ObjectInputStream(new FileInputStream ("a.txt"));
字符流——字符输出流 (以Writer 为抽象类)
通用write()方法:
write(int ch);
write(char[] chs);
write(char[] bys,int off , int len);
write(String chs);
write(String chs,int off , int len);
OutputStreamWriter
构造方法:
OutputStreamWriter osw = new OutputStreamWriter(new FileOutputStream ("a.txt"), "UTF-8");
FileWriter
构造方法:
FileWriter fw = new FileWriter("a.txt"); //默认UTF-8
BufferedWriter;
构造方法:
##BufferedWriter bw = new BufferedWriter(new OutputStreamWriter(new FileOutputStream ("a.txt"), "GBK"));
特有方法:
newLine();
PrintWriter : 字符打印流。
特有方法:
print();
println(); 原样输出。
PrintWriter pw = new PrintWriter(new FileWriter("a.txt") ,true);
pw.write(97);
pw.print(97);
pw.println(97); // a9797换行
字符流——字符输入流(以Reader为抽象类):
通用read()方法:
int read();
int read(char[] bys);
InputStreamReader :
构造方法:
InputStreamReader isr = new InputStreamReader( new FileInputStream("a.txt"), "GBK");
FileReader;
构造方法:
FileReader fr = new FileReader("a.txt");
BufferedReader :
构造方法:
BufferedReader br = new BufferedReader(new FileReader("a.txt"));
标准输入输出流:
System.in自定义键盘录入。
System.out
System.err
特有方法:
System.setErr(流向);
Properties集合:
IO流相关方法:
load();
store();
list();
save();
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】凌霞软件回馈社区,博客园 & 1Panel & Halo 联合会员上线
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】博客园社区专享云产品让利特惠,阿里云新客6.5折上折
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· DeepSeek 解答了困扰我五年的技术问题
· 为什么说在企业级应用开发中,后端往往是效率杀手?
· 用 C# 插值字符串处理器写一个 sscanf
· Java 中堆内存和栈内存上的数据分布和特点
· 开发中对象命名的一点思考
· 为什么说在企业级应用开发中,后端往往是效率杀手?
· DeepSeek 解答了困扰我五年的技术问题。时代确实变了!
· 本地部署DeepSeek后,没有好看的交互界面怎么行!
· 趁着过年的时候手搓了一个低代码框架
· 推荐一个DeepSeek 大模型的免费 API 项目!兼容OpenAI接口!