您的位置:首页 > 编程语言 > Java开发

Java自学之路-Java基础教程-32:Java写文件操作和IO输入输出流

2018-03-19 16:06 876 查看
有读文件操作,就有写文件操作。Java的读写文件操作,称为IO操作,也就是Input和Output,输入和输出。读操作使用Input,写操作使用Output,读和写都是相对于计算机内存而言的。读即是往内存中放数据,是Input。写即是从内存中出数据,是Output。

public static void main(String[] args) throws Exception {
// TODO Auto-generated method stub

File file = new File("E:/newFile.txt");
FileOutputStream fos = new FileOutputStream(file);

String content = new String("Hello World!");
fos.write(content.getBytes());

}
上面四行代码,就可以实现把一个字符串Hello World写到一个文件里。第一行File file = new File("E:/newFile.txt");创建了一个文件,文件路径是E:/newFile.txt。仅这一句,就已经在计算机硬盘上新建了一个名为E:/newFile.txt的文件了。
接着,FileOutputStream fos = new FileOutputStream(file);这句使用FileOutputStream文件输出流类创建一个输出流对象,构造方法传入新建的文件路径。
String content = new String("Hello World!");创建一个字符串对象,即是要向文件中写入的字符。
fos.write(content.getBytes());这句调用FileOutputStream对象的wrtie()方法,把字符串转为byte数组,并写入文件。getBytes()就是调用String类的转为字节数组方法。这样一步,就完成了把数据写入文件的操作。
下面我们来新建一个类,把文件的读操作和写操作的方法封装一下,也就是整理到一个自己写的类里,以后可以拿来用。注意,因为File、FileInputStream和FileOutputStream都在java.io这个包里,所以要用import关键字导入java.io.*这个包里的类。如果不用java.io.*,也可以分别导入这几个类,比如直接import java.io.File;就可以把File引入进来使用。为什么String、StringBuffer、System这些类不用引入呢?这些类位于java.lang包里,Java规定lang包不需要引入即可使用。

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

public class FileUtil {

private static void wrtieFile(String filePath, String fileContent) throws Exception {
File file = new File(filePath);
FileOutputStream fos = new FileOutputStream(file);

String content = new String(fileContent);
fos.write(content.getBytes());
}

private static String readFile(String filePath) throws Exception {
File javaFile = new File(filePath);

FileInputStream fis = new FileInputStream(javaFile);

byte[] bytes = new byte[1024];
StringBuffer stringBuffer = new StringBuffer();

while (fis.read(bytes) != -1) {
stringBuffer.append(new String(bytes));
}

return stringBuffer.toString();
}

}


上面创建了一个FileUtil类,它有两个static的方法wrtieFile和readFile。void wrtieFile(String filePath, String fileContent)没有返回值,接收的参数有文件路径filePath和要写入文件的内容fileContent。String readFile(String filePath)有String类型的返回值,接收的参数是要读的文件所在的路径filePath。之所以把这两个方法定义为static的,而且是public公用的,是因为我们可以使用FileUtil.readFile()这样进行方法操作,就不用再创建FileUtil对象了,这样的方法就是类的静态方法。

public static void main(String[] args) throws Exception {
// TODO Auto-generated method stub

FileUtil.wrtieFile("E:/newFile.txt", "Hello Wolrd!");
FileUtil.readFile("E:/newFile.txt");

}在main方法中调用这两个方法,就可以实现读文件和写文件的操作了,这就是封装的作用。
下一步,我们看Java的异常类Exception。



具有OCR和ASR功能,可以识别图片和录音中文字,并有多国语言翻译功能,可以作为便签或笔记,类似微博的图文应用
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: