文件
1、什么是文件?
文件是我们保存数据的地方。
2、文件流
文件在程序中是以流的形式来操作的。
流:数据在数据源(文件)和程序(内存)之间经历的路径
输入流:数据从数据源(文件)到程序(内存)的路径
输出流:数据从程序(内存)到数据源(文件)的路径
3.字符流和字节流
字符流的由来: 因为数据编码的不同,而有了对字符进行高效操作的流对象。本质其实就是基于字节流读取时,去查了指定的码表。字节流和字符流的区别:
(1)读写单位不同:字节流以字节(8bit)为单位,字符流以字符为单位,根据码表映射字符,一次可能读多个字节。
(2)处理对象不同:字节流能处理所有类型的数据(如图片、avi等),而字符流只能处理字符类型的数据。
(3)字节流在操作的时候本身是不会用到缓冲区的,是文件本身的直接操作的;而字符流在操作的时候下后是会用到缓冲区的,是通过缓冲区来操作文件,我们将在下面验证这一点。
结论:优先选用字节流。首先因为硬盘上的所有文件都是以字节的形式进行传输或者保存的,包括图片等内容。但是字符只是在内存中才会形成的,所以在开发中,字节流使用广泛。
4.输入流和输出流
对输入流只能进行读操作,对输出流只能进行写操作,程序中需要根据待传输数据的不同特性而使用不同的流。
Java流类图结构:
5、常用的文件操作
1、创建文件对象相关构造器和方法
new File(String pathname)
new File(File parent,String child)
new File(String parent,String child)
createNewFile()
import org.testng.annotations.Test;
import java.io.File;
import java.io.IOException;
public class FileCreate {
public static void main(String[] args) {
}
@Test
public void create1(){
String filePath = "D:\\file1.txt";
File file = new File(filePath);
try {
file.createNewFile();
System.out.println("创建文件1成功");
} catch (IOException e) {
e.printStackTrace();
}
}
2、获取文件的相关信息
import org.testng.annotations.Test;
import java.io.File;
public class FileInformation {
public static void main(String[] args) {
}
@Test
public void Info(){
File file = new File("D:\\file1.txt");
System.out.println("文件名称:"+file.getName());
System.out.println("文件绝对路径:"+file.getAbsolutePath());
System.out.println("文件父目录:"+file.getParent());
System.out.println("文件大小(字节):"+file.length());
System.out.println("文件是否存在:"+file.exists());
System.out.println("是否是文件:"+file.isFile());
System.out.println("是否是目录:"+file.isDirectory());
}
}
3、目录的操作
import org.testng.annotations.Test;
import java.io.*;
public class fileDirectory {
public static void main(String[] args) {
}
@Test
public void fileDelete(){
String filePath = "D:\\file1.txt";
File file = new File(filePath);
if(file.exists()){
if(file.delete()){
System.out.println(filePath+"删除成功");
}else {
System.out.println(filePath+"删除失败");
};
}else{
System.out.println("文件不存在");
}
}
@Test
public void fileDeleteD(){
String filePath = "D:\\file1.txt";
File file = new File(filePath);
if(file.exists()){
if(file.delete()){
System.out.println(filePath+"删除成功");
}else {
System.out.println(filePath+"删除失败");
};
}else{
System.out.println("目录不存在");
}
}
@Test
public void fileDeleteD1(){
String dirPath = "D:\\test\\dir1.txt";
File file = new File(dirPath);
if(file.exists()){
System.out.println(dirPath+"该目录已经存在");
}else{
if(file.mkdirs()){
System.out.println("创建成功");
}else {
System.out.println("创建失败");
};
}
}
//InputStream
//OutputStream
//Writer
//Reader
}
6、Scanner与Println
1、基本键盘输入
import org.testng.annotations.Test;
import java.util.Scanner;
public class scanPrintTest {
public static void main(String[] args) {
Scanner input = new Scanner(System.in);
String str = input.next();
System.out.println(str);
System.out.println("hello world");
}
}
2、常见键盘输入类型
import java.util.Scanner;
public class scanTest {
public static void main(String[] args) {
Scanner input =new Scanner(System.in);
System.out.print("请输入一个double类型的数:");
double d = input.nextDouble();
System.out.println(d);
System.out.print("请输入一个int类型的数:");
int i = input.nextInt();
System.out.println(i);
System.out.print("请输入一个string类型的数:");
String s = input.next();
System.out.println(s);
}
}
标签:Java,io,File,System,String,file,println,out From: https://www.cnblogs.com/star1493548960/p/16864621.html