IO简单基础操作(一)
Java IO 操作(一)
//1,创建一个新的文件
import java.io.File;
import java.io.IOException;
public class test {
public static void main(String[] args) {
String str = "D:"+File.separator+"work001.txt";
File f = new File(str);
try {
f.createNewFile();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
//对以上进行补充 File.separator 是跨平台的的分隔符 在Linux中同样可以使用
//就是一个路径
}
}
//2,删除一文件
import java.io.File;
public class test {
public static void main(String[] args) {
//创建一个新的文件
String str = "D:"+File.separator+"work001.txt";
File f = new File(str);
if (f.exists()) { //如果存在
f.delete(); //删除这个文件
}
}
}
//3,创建一个新文件夹,也就是目录
import java.io.File;
public class test {
public static void main(String[] args) {
String str = "D:"+File.separator+"work001";
File f = new File(str);
f.mkdir();
}
//这里补充一点很多人迷惑mkdir()和mkdirs()这两个方法
//小编可以这样告诉大家mkdir()创建时必须要有父目录,也就是说,你只能在一个目录下面创建子目录
//而mkdirs()不需要你有父目录,可以直接创建任何目录
}
//4,打印当前目录下面的所有文件包括目录,但是不打印子目录和文件
import java.io.File;
public class test {
public static void main(String[] args) {
String str = "D:"+File.separator;
File f = new File(str);
//list()方法的作用是将文件中的目录和文件的名字用字符串的形式返回
//这里定义了数组,就是装到数组里面去!
String[] file = f.list();
for (int i = 0; i < file.length; i++) {
System.out.println(file[i]);
}
}
}
//5,打印当前目录下面的所有文件包括目录和隐藏文件,但是不打印子目录和文件
import java.io.File;
public class test {
public static void main(String[] args) {
String str = "D:"+File.separator;
File f = new File(str);
//listFiles()方法的作用是将文件中的目录和文件的名字用字符串的形式返回
//这个方法打印的是绝对路径
//这里定义了数组,就是装到数组里面去!
File[] file = f.listFiles();
for (int i = 0; i < file.length; i++) {
System.out.println(file[i]);
}
}
}
//6,打印当前目录下面的所有文件就是有后缀的所有文件,包括子子目录下面的文件
import java.io.File;
public class test {
public static void main(String[] args) {
String str = "D:"+File.separator;
File file = new File(str);
print(file);
}
public static void print(File file)
{ //判断他这个文件是否为空
if (file!=null) {
if (file.isDirectory())//判断他是否是目录
{
File[] f = file.listFiles();
if (f!=null)
{
for (int i = 0; i < f.length; i++)
{
print(f[i]);
//这里是递归调用,如果他是目录继续寻找
}
}
}
else
{
System.out.println(file.getName());
}
}
}
}
//7,随机读取
import java.io.File;
import java.io.FileNotFoundException;
import java.io.IOException;
import java.io.RandomAccessFile;
public class test {
public static void main(String[] args) throws IOException {
String str = "D:"+File.separator+"hello.txt";
File file = new File(str);
try {
RandomAccessFile ra = new RandomAccessFile(file, "rw");
//分析下 这个是随机读取 可以往文件里面随便读取 后面file是文件路径 rw是文件的权限 r代表可读 w代表可写
ra.write(34);//注意这里写入的是一个int类型但是他只占一个字节
// 所以如果数字过大就会溢出,ra.writeInt(34)表示占四个字节,其他的类推
// 打开文件就可以看到文件内写的是乱码,这个读者不必在乎,正常现象,变化的格式问题
} catch (FileNotFoundException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
}
//8,往文件中写内容
import java.io.File;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.OutputStream;
public class test {
public static void main(String[] args) throws IOException {
String str = "D:"+File.separator+"hello.txt";
File file = new File(str);
OutputStream os = new FileOutputStream(file);
String a = "hello";
byte[] b = a.getBytes();//将字符串转换成字节数组的形式
//因为write()没有直接写字符串的方法
os.write(b);
os.flush();//每写一次都要刷新,否则内容不再文件里面
//而是在流里面
os.close();
//close()也具有相同的刷新功能,他是直接将流关掉!
}
}
//9,往文件里面追加新的内容
import java.io.File;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.OutputStream;
public class test {
public static void main(String[] args) throws IOException {
String str = "D:"+File.separator+"hello.txt";
File file = new File(str);
String text= "hello";
byte[] buff = text.getBytes();
OutputStream os = new FileOutputStream(file,true);
for (int i = 0; i < buff.length; i++) {
os.write(buff[i]);
}
os.close();
}
}
//10,从文件里面读内容
import java.io.File;
import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.InputStream;
import java.io.InputStreamReader;
import java.io.OutputStream;
public class test {
public static void main(String[] args) throws IOException {
String str = "D:"+File.separator+"hello.txt";
File file = new File(str);
InputStream is = new FileInputStream(file);
byte[] ra = new byte[1024];
int m=is.read(ra);//m表示往数组里面写的字符数量
//下面的m就表示打印出来的长度,如果没有限制的话 最后一次打印就会出现很多空格
System.out.println(new String(ra,0,m));
is.close();
}
}
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 分享4款.NET开源、免费、实用的商城系统
· 全程不用写代码,我用AI程序员写了一个飞机大战
· MongoDB 8.0这个新功能碉堡了,比商业数据库还牛
· 白话解读 Dapr 1.15:你的「微服务管家」又秀新绝活了
· 上周热点回顾(2.24-3.2)