大家好,我是爱动漫更爱编程的小工同学~
File概述 属性 构造方法 方法 代码示例 示例1:普通文件的创建、删除
import java.io.File;
import java.io.IOException;
public class Main2 {
public static void main(String[]args) throws IOException
{
//目前来说,这个文件是不存在的
File file=new File("hello -world.txt");
//判断文件是否存在
System.out.println(file.exists());
//判断file是否是一个目录
System.out.println(file.isDirectory());
//判断file是否是一个普通文件
System.out.println(file.isFile());
//创建一个空文件
System.out.println(file.createNewFile());
System.out.println(file.exists());
System.out.println(file.isDirectory());
System.out.println(file.isFile());
//删除一个普通文件
System.out.println(file.delete());
System.out.println(file.exists());
}
}
//运行结果
false
false
false
true
true
false
true
true
false
示例2:读取文件的信息
import java.io.File;
import java.io.IOException;
public class Main2 {
public static void main(String[] args) throws IOException {
File file=new File("..\hello-world.txt");
//返回File对象的父目录文件路径
System.out.println(file.getParent());
//返回文件名
System.out.println(file.getName());
//返回File对象的文件路径
System.out.println(file.getPath());
//返回File对象的绝对路径
System.out.println(file.getAbsolutePath());
//返回File对象修饰过的绝对路径
System.out.println(file.getCanonicalPath());
}
}
//输出结果
..
hello-world.txt
..\hello-world.txt
D:\untitled1\..\hello-world.txt
D:\hello-world.txt
示例3:创建目录
import java.io.File;
import java.io.IOException;
public class Main2 {
public static void main(String[] args) throws IOException {
//some-parent 和some-dir都不存在
File dir=new File("some-parent\some-dir");
System.out.println(dir.isDirectory());
System.out.println(dir.isFile());
//使用mkdir()时,如果中间目录不存在,则无法创建成功,mkdirs()可以解决这个问题0
System.out.println(dir.mkdirs());
System.out.println(dir.isDirectory());
System.out.println(dir.isFile());
}
}
运行结果
false
false
true
true
false
文件内容的读写--数据流
InputStream
方法
FileInputStream
构造方法
代码示例
示例1: 文件的完全读入
注意:需要先在项目目录下准备好一个hello.txt文件,
import java.io.FileInputStream;
import java.io.IOException;
import java.io.InputStream;
public class Main {
public static void main(String[] args) throws IOException {
try(InputStream is=new FileInputStream("D:\untitled1\src\Internet\hello.txt")){
while(true)
{
int b=is.read();
if( b==-1){
break;
}
System.out.println(b);
}
}
}
}
文件内容:12345
运行结果:49 50 51 52 53
import java.io.FileInputStream;
import java.io.IOException;
import java.io.InputStream;
public class Main {
public static void main(String[] args) throws IOException {
try(InputStream is=new FileInputStream("D:\untitled1\src\Internet\hello.txt")){
byte[]buf=new byte[1024];
int len;
while(true)
{
len=is.read(buf);
if( len==-1){
break;
}
for(int i=0;i
相比较而言,后一种的IO次数更少,性能更好
示例2:利用Scanner进行字符读取import java.io.FileInputStream;
import java.io.IOException;
import java.io.InputStream;
import java.util.Scanner;
public class Main {
public static void main(String[] args) throws IOException {
try(InputStream is=new FileInputStream("D:\untitled1\src\Internet\hello.txt"))
{
Scanner scanner=new Scanner(is,"UTF-8");
while(scanner.hasNext())
{
String s=scanner.next();
System.out.print(s);
}
}
}
}
文件内容:你好,世界
运行结果:你好,世界
OutputStream
方法
代码示例 示例1:利用OutputStreamWriter进行字符写入import java.io.FileOutputStream;
import java.io.IOException;
import java.io.OutputStream;
public class Main {
public static void main(String[] args) throws IOException {
try(OutputStream os=new FileOutputStream("D:\untitled1\src\Internet\hello.txt"))
{
//1单个字符读入
os.write('H');
os.write('e');
os.write('l');
os.write('l');
os.write('o');
//2 以byte数组形式读入
byte[]b=new byte[]{(byte)'W',(byte)'o',(byte)'r',(byte)'l',(byte)'d'};
os.write(b);
//3 读入中文
String s="你好中国";
byte[]B=s.getBytes("utf-8");
os.write(B);
os.flush();
}
}
}
运行结果
我们还可以用PrintWriter类来完成输出,因为它提供了我们熟悉的print/println/printf方法
代码示例import java.io.*;
public class Main {
public static void main(String[] args) throws IOException {
try(OutputStream os=new FileOutputStream("D:\untitled1\src\Internet\hello.txt"))
{
try {
OutputStreamWriter osWrite=new OutputStreamWriter(os,"UTF-8");
{
try(PrintWriter writer=new PrintWriter(osWrite))
{
writer.println("我是第一行");
writer.print("我是第二行\r\n");
writer.printf("%d: 我是第三行\r\n",1+1);
writer.flush();
}
}
} catch (UnsupportedEncodingException e) {
e.printStackTrace();
}
}
}
}
运行结果
🚀每日一图
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)