javaIO流的学习笔记
程序员文章站
2024-03-08 23:10:40
...
javaIO流的学习笔记
File 操作
在对文件操作比较重要的就是对文件对目录的一些判断,最高频率使用的就是判断文件父路径是否存在,创建路径,判断文件是否存在创建文件
public class TestFile {
public static void main(String[] args) throws Exception {
// 完整路径
File file = new File("F:"+ File.separator +"file" + File.separator + "testFile" + File.separator + "test.txt");
// 父路径不存在
if(!file.getParentFile().exists()){
System.out.println("父目录不存在,创建目录");
file.getParentFile().mkdirs();
}
if (file.exists()){
if(file.canExecute()){
System.out.println("文件可执行!");
}
if(file.canRead()){
System.out.println("文件可读!");
}
if(file.canWrite()){
System.out.println("文件可写!");
}
if(file.isFile()){
System.out.println("是文件!");
}
if(file.isDirectory()){
System.out.println("是路径!");
}
System.out.println("文件绝对路径!" + file.getAbsoluteFile());
System.out.println("文件或目录名称!" + file.getName());
System.out.println("文件最后修改日期!" + new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").format(new Date(file.lastModified())));
System.out.println("文件或目录名称%5.2f!" + file.length()/(double)1024/1024 + "MB");
}else {
System.out.println("文件不存在!执行文件创建操作");
file.createNewFile();
}
}
}
IO
io通俗的理解就是对内存中的数据读和写Input和Output
public class TestIO {
// 文件内容操作通过流(stream)操作
// 字节流 OutputStream inputStream
// 字符流 Reader Writer 基本用于中文处理
// 通过硬盘,网络,发送存储都用字节流
// 缓冲区是字符数据经过缓存区处理成字节数据进行文件保存
/**
* 1.通过File类设定要操作的文件路径
* 2.通过字节流或字符流的子类为父类进行对象实例化处理
* 3.进行读写操作
* 4.流属于宝贵资源需要关闭
*/
public static void output(File file) throws Exception {
// 有true 为追加
OutputStream outputStream = new FileOutputStream(file,true);
outputStream.write("\r\nwww.zhjweb.tech".getBytes(),2,6);
outputStream.close();
}
public static void write(File file) throws Exception {
// 有true 为追加
Writer writer = new FileWriter(file,true);
writer.write("哈喽你好呀!");
writer.close();
}
public static void input(File file) throws Exception {
InputStream inputStream = new FileInputStream(file);
byte[] data = new byte[1024];
inputStream.read(data);
System.out.println("【" + new String(data) + "】");
inputStream.close();
}
public static void read(File file) throws Exception {
Reader reader = new FileReader(file);
char[] data = new char[1024];
reader.read(data);
System.out.println("【" + new String(data) + "】");
reader.close();
}
public static void main(String[] args) throws Exception {
File file = new File("F:"+ File.separator +"file" + File.separator + "testFile" + File.separator + "test.txt");
if (!file.getParentFile().exists()){
file.getParentFile().mkdirs();
}
write(file);
if (file.exists()) {
read(file);
}
}
}
转换流
在字符数据的读写中需要进行和字节数据的转换
public class Test {
public static void main(String[] args) throws Exception {
File file = new File("F:"+ File.separator +"file" + File.separator + "testFile" + File.separator + "test.txt");
if (!file.getParentFile().exists()){
file.getParentFile().mkdirs();
}
// 字节流
OutputStream outputStream = new FileOutputStream(file);
// 字节流转字符流
Writer out = new OutputStreamWriter(outputStream);
// 可以直接输出字符串
out.write("www.zhjweb.tech");
// 方便处理中文
out.write("\n 你好,世界!");
out.close();
}
}
上一篇: 算法之素数筛法
下一篇: 两个有序顺序表合并成一个有序顺序表