欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

JAVA(文件)输入输出流

程序员文章站 2024-03-16 22:43:34
...

标准输入流java.util.Scanner

Scanner s=new Scanner(System.in);//构造一个Scanner对象,其传入参数为System.in 
	System.out.println("请输入一个整数");
	BigInteger i=s.nextBigInteger();//输入一个大整数
	System.out.println(i);

循环输入

while(s.hasNextInt()) {
      x=s.nextInt();//输入一个整数
      System.out.println(x);
}

java中对文件的操作是通过文件输入流类java.io.FileInputStream类和文件输出流类java.io.FileOutputStream类来实现的,需要引入以下几个类

import java.io.File;
import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.IOException;

声明文件类对象

File file=new File("//D://360zip");     //这里是一个文件夹
File file1=new File("//D://test1.txt"); //这里是文本文档
File file2=new File("//D://test2.txt"); //这里是文本文档

读取文件操作

public static void read(File file) throws IOException {
		FileInputStream in=new FileInputStream(file);   //文件输入流对象
		byte[] b = new byte[1024];//声明一个字节数组
		in.read(b);//读取
		String str=new String(b);
		System.out.println(str);
		in.close();
	}

写操作和复制文件操作

public static void write(File file1,File file2) throws IOException {
		if(file1.isFile()&&file2.getParentFile()!=null) { //判断文件是否符合复制要求
			FileOutputStream out=new FileOutputStream(file2);
			FileInputStream in=new FileInputStream(file1);
			byte[] b = new byte[1024];
			in.read(b);//从file1中读取字符
			out.write(b);//向file2中写入字符
			in.close();//关闭
			out.close();//关闭
		}
	}

遍历文件操作

public static void println(File file) {
		if(file.listFiles()!=null) {  //递归条件:如果该文件下有子文件夹
			File[] files=file.listFiles();
			for(File f : files) {
				println(f);//递归
			}
		}
		else {
			System.out.println(file.getAbsolutePath());//否则输出文件的路径
		}
	}

调用方法

if(file.exists()) {        //遍历文件
			println(file);
		}
if(file1.isFile()) {       //读取文件
			read(file1);
		}
write(file1,file2);        //复制文件