1.File类的构造方法
案例:
package com.file;
import java.io.File;
public class Test1 {
public static void main(String[] args) {
File f1=new File("F://Test//java.txt");
System.out.println(f1); //F:\Test\java.txt
File f2=new File("F://Test","java.txt");
System.out.println(f2); //F:\Test\java.txt
File f3=new File("F://Test");
File f4=new File(f3,"java.txt");
System.out.println(f4); //F:\Test\java.txt
}
}
2.File类的创建
案例:
package com.file;
import java.io.File;
import java.io.IOException;
public class Test2 {
public static void main(String[] args) throws IOException {
//在F盘的Test目录下创建一个test.txt文件
File f1=new File("F://Test//test.txt");
System.out.println(f1.createNewFile()); //true
//在F盘的Test目录下创建一个Spring目录
File f2=new File("F://Test//Spring");
System.out.println(f2.mkdir()); //true
//在F盘的Test目录下创建多个目录
File f3=new File("F://Test//MyBatis//SpringMVC");
System.out.println(f3.mkdirs()); //true
}
}
3.File类判断和获取
案例:
package com.file;
import java.io.File;
public class Test3 {
public static void main(String[] args) {
File f=new File("F:\\Test\\java.txt");
System.out.println(f.isDirectory()); //false
System.out.println(f.isFile()); //true
System.out.println(f.exists()); //true
System.out.println(f.getAbsoluteFile()); //F:\Test\java.txt
System.out.println(f.getPath()); //F:\Test\java.txt
System.out.println(f.getName()); //java.txt
File f1=new File("F:\\Test");
String[] list = f1.list();
for (String s : list) {
System.out.println(s);
/* a b java.txt MyBatis Spring test.txt TestOne 小飞侠 小马哥*/
}
File[] files = f1.listFiles();
for (File file : files) {
System.out.println(file);
/* F:\Test\a F:\Test\b F:\Test\java.txt F:\Test\MyBatis F:\Test\Spring F:\Test\test.txt F:\Test\TestOne F:\Test\小飞侠 F:\Test\小马哥 */
}
}
}
4.File类的删除
案例:
package com.file;
import java.io.File;
import java.io.IOException;
public class Test4 {
public static void main(String[] args) throws IOException {
//在当前模块下创建one.txt文件
File f1=new File("E:\\JavaSE\\Test\\File\\one.txt"); //true
System.out.println(f1.createNewFile());
//删除当前模块下创建one.txt文件
System.out.println(f1.delete()); true
//在当前模块下创建one目录
File f2=new File("E:\\JavaSE\\Test\\File\\one");
System.out.println(f2.mkdir()); true
//删除当前模块下创建one目录
System.out.println(f2.delete()); true
}
}
1.io流的概述和分类
2.字节流
1.字节流写数据
案例:
package com.outPutstream;
import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.OutputStream;
public class Test1 {
public static void main(String[] args) throws IOException {
//创建字节输出流对象
FileOutputStream f = new FileOutputStream("E:\\JavaSE\\Test\\File\\outputStream.txt");
//将字节写入此文件输出流
f.write(97); //a
//释放资源
f.close();
}
}
2.字节流写数据的三种方式
案例:
package com.outPutstream;
import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.IOException;
public class Test2 {
public static void main(String[] args) throws IOException {
//创建字节输出流对象
FileOutputStream f = new FileOutputStream("E:\\JavaSE\\Test\\File\\outputStream.txt");
//将字节写入此文件输出流
/* f.write(97); f.write(98); f.write(99); f.write(100); */ //abcd
//将指定的字节数组写入此文件输出流
byte[] bytes={ 97,98,99,100};
//f.write(bytes); //abcd
f.write(bytes,1,2); //bc
//释放资源
f.close();
}
}
3.换行和追加
案例:
package com.outPutstream;
import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.IOException;
public class Test3 {
public static void main(String[] args) throws IOException {
FileOutputStream f = new FileOutputStream("E:\\JavaSE\\Test\\File\\outputStream.txt",true);
for (int i = 0; i <5 ; i++) {
f.write("hello".getBytes());
f.write("\r\n".getBytes());
}
f.close();
}
}
//执行三次的结果
/* hello hello hello hello hello hello hello hello hello hello hello hello hello hello hello */
4.字节流读数据(一次只能读一个字节)
案例:
package com.FileInputStream;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.IOException;
public class Test1 {
public static void main(String[] args) throws IOException {
//创建字节输入流对象
FileInputStream f = new FileInputStream("E:\\JavaSE\\Test\\File\\inputStream.txt");
//读取数据
/*int by = f.read(); System.out.println(by); //97 System.out.println((char)by); //a */
//一次只能读取一个字节
int by = f.read();
while (by != -1){
System.out.print((char) by); //abc
by=f.read();
}
//释放资源
f.close();
}
}
5.字节流复制文本文件
案例:
package com.FileInputStream;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.IOException;
public class Test2 {
public static void main(String[] args) throws IOException {
FileInputStream f1 = new FileInputStream("E:\\JavaSE\\Test\\File\\inputStream.txt");
FileOutputStream f2 = new FileOutputStream("E:\\JavaSE\\Test\\File\\outputStream.txt");
int by = f1.read();
while (by !=-1){
f2.write((char)by);
by=f1.read();
}
}
}
6.字节流读数据(一次读一个字节数组)(复制图片操作一样)
案例:
package com.FileInputStream;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.IOException;
public class Test3 {
public static void main(String[] args) throws IOException {
FileInputStream f1 = new FileInputStream("E:\\JavaSE\\Test\\File\\inputStream.txt");
byte[] bytes=new byte[1024];
int by;
by = f1.read(bytes);
while (by !=-1){
System.out.println(new String(bytes,0,by));
by=f1.read(bytes);
}
}
}
/* Java JavaWeb Python Spring Mybatis */
7.字节缓冲流
案例:
package com.BufferStream;
import java.io.*;
public class Test1 {
public static void main(String[] args) throws IOException {
BufferedOutputStream b1 = new BufferedOutputStream(new FileOutputStream("E:\\JavaSE\\Test\\File\\buffer.txt"));
b1.write("Hello".getBytes());
b1.write("\r\t".getBytes());
b1.write("World".getBytes());
b1.close();
BufferedInputStream b2 = new BufferedInputStream(new FileInputStream("E:\\JavaSE\\Test\\File\\buffer.txt"));
int by = b2.read();
while (by !=-1){
System.out.print((char)by);
by=b2.read();
}
b2.close();
}
}
3.字符流
1.字符串中编码解码问题
案例:
package com.zifu;
import java.io.UnsupportedEncodingException;
import java.util.Arrays;
public class Test1 {
public static void main(String[] args) throws UnsupportedEncodingException {
/*String s1="小马哥"; byte[] bytes = s1.getBytes(); System.out.println(Arrays.toString(bytes)); //[-27, -80, -113, -23, -87, -84, -27, -109, -91] //String s=new String(bytes); //小马哥 String s=new String(bytes,"UTF-8"); //小马哥 System.out.println(s);*/
String s2="小飞侠";
byte[] bytes =s2.getBytes("GBK");
System.out.println(Arrays.toString(bytes)); //[-48, -95, -73, -55, -49, -64]
String s=new String(bytes,"GBK");
System.out.println(s); //小飞侠
}
}
2.字符流中编码解码问题
案例:
package com.zifu;
import java.io.*;
public class Test2 {
public static void main(String[] args) throws Exception {
OutputStreamWriter o = new OutputStreamWriter(new FileOutputStream("E:\\JavaSE\\Test\\File\\java.txt"),"GBK");
o.write("小飞侠");
o.close();
InputStreamReader i = new InputStreamReader(new FileInputStream("E:\\JavaSE\\Test\\File\\java.txt"),"GBK");
int by = i.read();
while (by !=-1){
System.out.print((char)by); //小飞侠
by=i.read();
}
}
}
3.字符流写数据的5种方式
案例:
package com.zifu;
import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.OutputStreamWriter;
public class Test3 {
public static void main(String[] args) throws Exception {
OutputStreamWriter o = new OutputStreamWriter(new FileOutputStream("E:\\JavaSE\\Test\\File\\java.txt"));
//写一个字符
o.write("97"); //97
o.write("a"); //a
//刷新流
o.flush();
//写一个字符数组
char[] chars={ 'a','b','c','d','e'}; //abcde
//o.write(chars);
//写一个字符数组的一部分
o.write(chars,0,chars.length); //abcde
o.write(chars,1,3); //bcd
//写一个字符串
//o.write("xyz"); //xyz
//写一个字符串的一部分
o.write("asdfghj",1,5); //sdfgh
o.close();
}
}
4.字符流读数据的2中方式
案例:
package com.zifu;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.IOException;
import java.io.InputStreamReader;
public class Test4 {
public static void main(String[] args) throws IOException {
InputStreamReader i = new InputStreamReader(new FileInputStream("E:\\JavaSE\\Test\\File\\java.txt"));
//一次读一个字符数据
int by = i.read();
while (by !=-1){
System.out.print((char)by); //aabcdebcdsdfgh
by=i.read();
}
//一次读一个字符数组
char[] chars=new char[1024];
int c = i.read(chars);
while (c!=-1){
System.out.println(new String(chars,0,c));
c=i.read(chars);
/* aab cde bcds dfgh */
}
}
}
5.字符缓冲流
案例:
package com.zifu;
import java.io.*;
public class Test5 {
public static void main(String[] args) throws IOException {
/*BufferedWriter w = new BufferedWriter(new FileWriter("E:\\JavaSE\\Test\\File\\java.txt")); w.write("Hello"); w.write("\r\n"); w.write("World");*/
BufferedReader r = new BufferedReader(new FileReader("E:\\JavaSE\\Test\\File\\java.txt"));
int by = r.read();
while (by!=-1){
System.out.print((char)by);
/* Hello World */
by=r.read();
}
//w.close();
r.close();
}
}
6.字符缓冲流特有功能
案例:
package com.zifu;
import java.io.*;
public class Test6 {
public static void main(String[] args) throws IOException {
BufferedWriter w = new BufferedWriter(new FileWriter("E:\\JavaSE\\Test\\File\\java.txt"));
for (int i = 0; i <5 ; i++) {
w.write("Java"+i);
/* Java0 Java1 Java2 Java3 Java4 */
//换行
w.newLine();
w.flush();
}
w.close();
BufferedReader r = new BufferedReader(new FileReader("E:\\JavaSE\\Test\\File\\java.txt"));
/*String s = r.readLine(); while (s!=null){ System.out.println(s); s=r.readLine(); }*/
String s;
while ((s=r.readLine())!=null){
System.out.println(s);
}
}
}
/* Java0 Java1 Java2 Java3 Java4 */
本文为互联网自动采集或经作者授权后发布,本文观点不代表立场,若侵权下架请联系我们删帖处理!文章出自:https://blog.csdn.net/qq_43514330/article/details/125165757