目录
一.存储的基本常识
文件是存储在硬盘上的
硬盘和内存的区别:
1.内存存储空间小,硬盘空间大
2.内存访问速度快,硬盘速度慢
3.内存成本高,硬盘便宜
4.内存掉电数据丢失,硬盘掉电数据还在
二.File类的基本操作
1.文件的基本操作-获取绝对路径
import java.io.File;
import java.io.IOException;
public class Byte {
public static void main(String[] args) throws IOException {
File file=new File("./text/111/222/333/testtt.txt");
System.out.println("获取的绝对路径为"+file.getAbsolutePath());//获取绝对路径
}
}
2.文件的基本操作-创建文件
import java.io.File;
import java.io.IOException;
public class Byte {
public static void main(String[] args) throws IOException {
File file=new File("./text/111/222/333/testtt.txt");
file.mkdirs();//创建多级目录
file.createNewFile();//创建新文件-只是最后一个文件
}
}
3.文件的基本操作-删除文件
import java.io.File;
import java.io.IOException;
public class Byte {
public static void main(String[] args) throws IOException {
File file=new File("./text/111/222/333/testtt.txt");
file.delete();//将该目录底下的文件删除
}
}
4.文件的基本操作- 重命名文件
import java.io.File;
import java.io.IOException;
public class Byte {
public static void main(String[] args) throws IOException {
File file=new File("./text/111/222/333/testtt.txt");//文件要存在
File file1=new File("./text/111/222/333/testtt1.txt");//文件不能存在
file.renameTo(file1);//将testtt.txt文件重命名为testtt1.txt
}
}
三.InputStream和OutputStream
1.InputStream来实现读操作
import java.io.*;
public class Byte {
public static void main(String[] args) throws IOException {
InputStream inputStream=new FileInputStream("C:/Users/yanchaopeng/Desktop/Test.txt/");//文件里有a,b两个字符
while (true){
int b=inputStream.read();
if (b!=-1)//当读不到字符时返回值为-1
System.out.println(b);//输出时由于是字节流读操作,输出的为ASII码
else
break;
}
inputStream.close();//用完记得关闭文件,以防文件泄露。
}
}
2.通过OutputStream来实现写操作
OutputStream是字节流写操作,写的时候只能输入ASii码来实现写操作,而不能输入字符,字符的操作要用到其他方法,下面会讲到。
import java.io.*;
public class Byte {
public static void main(String[] args) throws IOException {
OutputStream outputStream=new FileOutputStream("C:/Users/yanchaopeng/Desktop/Test.txt/");
outputStream.write(97);//写入字符a
outputStream.write(98);//写入字符b
outputStream.flush();//刷新缓冲区使写入的操作实现
outputStream.close();//关闭文件
}
}
四.Writer和Reader(字符流的读和写操作)
Writer的写操作
import java.io.*;
public class Byte {
public static void main(String[] args) throws IOException {
Writer writer=new FileWriter("C:/Users/yanchaopeng/Desktop/Test.txt");//打开文件
writer.write("hello, world");//将字符串写入到文件中
writer.flush();//刷新缓冲区
writer.close();//关闭文件
}
Reader的读操作
import java.io.*;
public class Byte {
public static void main(String[] args) throws IOException {
Writer writer=new FileWriter("C:/Users/yanchaopeng/Desktop/Test.txt");
writer.write("hello, world");
writer.flush();
writer.close();//先将heello,world写入到文件当中。
Reader reader=new FileReader("C:/Users/yanchaopeng/Desktop/Test.txt");
char[] chars=new char[100];//定义一个字符数组
int len=reader.read(chars);//将文件中内容放入到字符数组chars中并将长度返回给len
for (int i = 0; i <len ; i++) {
System.out.print(chars[i]);//打印文件中的内容
}
reader.close();//关闭文件
}
}
因为Writer和Reader是字符流进行操作,所以对我们来说更加简单便捷,不需要来回的查ASII码表。
文章评论