JAVA文件流

阅读更多
文件流

使用File类操作文件或目录属性

创建一个File对象的语法格式:File f = new File("E://T56.txt");

f.exists()  判断这个文件是否存在 f.delete();删除这个文件 f.createNewFile();创建一个新的文件

f.isFile()  判断是否为文件 f.isDirectory()  判断是否为文件夹

f.getName() 文件名 f.getPath()  相对路径 f.getAbsolutePath()  绝对路径

***获得一个文件夹的所有下一层子文件
File[] files = f.listFiles();-》》此文件夹下的所有子文件

if (f.exists()) {
if (f.isDirectory()) {
for (File file : files) {
System.out.println(file.getName());

if (file.getName().equals("小说")) {
File[] fi = file.listFiles();
for (File file2 : fi) {
System.out.println("小说的子代是"+file2.getName());
}
}
}
}
}

输入流:输入 eg:从文件中拿出内容
(站在代码的角度看世界)
输出流:输出 eg:将代码需要输出的内容放进文件中

字节流:1.字节输入流 2.字节输出流
概念:把文件里的内容拆分成计算机的基本组成单位:字节 来进行输入/输出
如果操作纯文本文档的时候 就会多此一举(因为纯文本文档没必要拆了  可以直接流了)

字符流:1.字符输入流 2.字符输出流
概念:只适合操作纯字符流 txt/Word 文字直接从流中原原本本的流出来
省略了拆分/组装的步骤   所以在操作纯文本文档的时候   速度比字节流快很多

不能拆:非文本

java操作文件流的步骤:创建-》执行-》关闭

(一)字节流 非英文会乱码

1.输入流:
FileInputStream fis = new FileInputStream("E://一起飞//123.txt");

int num=fis.read();-》》表示读取的内容  ASCALL码
while (num!=-1) {
System.out.println("读取到的内容是"+(char)num);
num=fis.read();
}
fis.close();

2.输出流: 如果文件不存在,会自动创建好,并往里面输出
FileOutputStream fos = new FileOutputStream("E://一起飞//123.txt");

String name="My name is huanganyuan";

fos.write(name.getBytes());

fos.close();

(二)字符流 所有字符

字符输入流-》》最终的父类肯定是Reader基类
字符输出流-》》最终的父类肯定是Writer基类

FileOutputStream-》》最终的父类是OutputStream基类
FileInputStream -》》最终的父类是InputStream基类

1.输入流
FileReader fr = new FileReader("E://一起飞//123.txt"); 

int num;
try {
num = fr.read();
while (num!=-1) {

System.out.println("读取的内容是"+(char)num);

num=fr.read();

fr.close();
}
} catch (IOException e) {
e.printStackTrace();
}
2.输出流

FileWriter fw = new FileWriter("E://一起飞//123.txt");

String name = "我们是T56";

fw.write(name);

fw.close();

你可能感兴趣的:(java,文件流,File)