文件I/O操作(Java)
1.文本文件的操作
案例1:
import java.io.File;
import java.util.Date;
public class FileDemo
{
public static void main(String[] args) {
File f = new File("C:\\Users\\15041\\Desktop\\1.txt"); //Windows下文件的路径
if(f.exists() == false)
{
try
{
f.createNewFile(); //如果没有这个文件,则创建它
}
catch(Exception e)
{
System.out.println(e.getMessage());
}
}
System.out.println("file name: " + f.getName());
System.out.println("file path: " + f.getPath());
System.out.println("file absolute_path: " + f.getAbsolutePath());
System.out.println("parent file name: " + f.getParent()); //父文件夹
System.out.println(f.exists()? "file exist.":"file not exist.");
System.out.println(f.canWrite()? "file can write.":"file can not write.");
System.out.println(f.canRead()? "file can read.":"file can not read.");
long millisec = f.lastModified();
Date dt = new Date(millisec); //用Date类加工处理一下millisec
System.out.println("file last modified: " + dt);
System.out.println("size of file: " + f.length() + "Bytes");
}
}
在Java中,使用Scanner类能很方便地读入文本。
案例2:
在InputOutputDemo文件夹中,有input.txt的文件夹,其内有若干用空格隔开的数据,如图所示,
import java.io.File;
import java.io.FileNotFoundException;
import java.io.PrintWriter;
import java.util.Scanner;
public class InputOutputDemo
{
public static void main(String[] args) throws FileNotFoundException //不会抛出这个异常
{
Scanner console = new Scanner(System.in); //用System.in作为Scanner的输入参数,来读取用户的输入
System.out.print("输入文件名为:");
String inputFileName = console.next(); //用Scanner的next()方法读取控制台输入的下一个字符串对象,
//这里表示输入文件名inputFileName
System.out.print("输出文件名为:");
String outputFileName = console.next();
//创建Scanner对象和PrintWriter用以处理输入数据流和输出数据流
File inputFile = new File(inputFileName);
Scanner in = new Scanner(inputFile);
PrintWriter out = new PrintWriter(outputFileName);
int count = 0;
double value;
double total = 0.0;
while(in.hasNextDouble())
{
value = in.nextDouble();
out.printf("%6.2f\r\n", value); //浮点数总宽度为6个字符,小数点后保留2位,\r\n表示向输出文件中换行
total = total + value;
count ++;
}
out.printf("总和为:%8.2f\r\n", total);
out.printf("均值为:%8.2f\r\n", total/count);
in.close();
out.close();
}
}
在同一文件夹下生成输出文件(手动输出文件名),输出文件如下图所示: