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

Java自学之路-Java基础教程-31:Java读文件操作和类的构造方法

2018-03-19 16:05 671 查看
下面我们来看如何使用Java来操作本地磁盘上的文件。​

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

File javaFile = new File("E:/yingyinyi_new/calculateApp/.project");

FileInputStream fis = new FileInputStream(javaFile);

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

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

System.out.println(stringBuffer.toString());

}

比如本地磁盘上有E:/calculateApp/.project这个文本文件,我们要把它读出来,并在控制台把文件里面的内容打印出来。首先进行文件操作,要使用Java的一个操作文件的类File,要用这个类必须先创建这个类的对象。第一句File javaFile = new File("E:/calculateApp/.project");就是创建了一个File的对象,这里没有直接new File()而是new File()的括号里面加了一个参数"E:/calculateApp/.project",即是文件所在的位置,这个带有参数的File("E:/calculateApp/.project")就是一个带有参数的构造方法。其实创建一个类的对象,就是使用new关键字,再加上类的构造方法。之前我们创建对象,也是使用类的构造方法创建的,比如Person person = new Person();这个Person()即是一个空的构造方法。
在使用File类时需要用到import关键字在类里面引入这个类所在的包。也就是在第一行加入import java.io.*;这样一句。import就是导入的意思,把java.io.*的包全导入进来使用。
再下面一句FileInputStream fis = new FileInputStream(javaFile);也是创建了一个FileInputStream类的对象,这是一个操作文件流的类,所有文件相关的操作多是以流的方式。因为这里是把文件读进程序的内存,所以是使用输入流的类。
再下面一句byte[] bytes = new byte[1024];是创建了一个空的长度为1024的数组,数组类型为byte。计算机的文件是以字节码的方式存储的,所以可以使用字节码类型的数组来进行读取。
再下面一句StringBuffer stringBuffer = new StringBuffer();又创建了一个StringBuffer类的对象。这个StringBuffer类和String类很相似,但这个类可以随时加长,有个.append()方法可以做到在末尾加新的内容。
while (fis.read(bytes) != -1)这句就是一个循环语句了,它表示用FileInputStream对象的.read()方法读到文件里的内容,每读一次就存到bytes里面。直到fis.read(bytes) != -1这个条件满足,也就是读到了文件末尾,这个.read()方法就会返加一个int类型的值-1。while循环体{}里面的一句stringBuffer.append(new String(bytes));是把读进bytes数组里的字节内容转为String字符串,并把字符串拼到stringBuffer的末尾。这样一个字节一个字节地读文件,每读满1024个字节就把数组里的内容放到字符串里。最后,把整个字符串打印出来。
Java读文件的操作用到了几个常用的API类,File、FileInputStream、StringBuffer、String都是以后一定会用到的。
这里还提到了类的构造方法。每个类都有一个自带的方法,就是构造方法。构造方法就是为了构造类的对象而存在的。前面使用Java写一个类Class,比如CalculateMain这个类,也是有构造方法的,Person类也是有构造方法的,因为创建类的对象需要用new再加上构造方法进行实现。构造方法有的有参数,有的是空的没有参数即空的构造方法。所以创建类的对象,要么是用new File()这样,要么是用new File("E:/.project")这样的构造。因此,Java的类有普通的成员方法,还有构造方法,如果是空构造方法是隐藏的。但如果一个类有了一个有参数的构造方法,比如Person(String nation),那就一定要在类里再写一个空的构造方法Person()。
package com.helloworld;

public class Person {

public String nation = "USA";

public Person(String nation) {

}

public Person() {

}

public void speak() {

String word = "ABC";

System.out.println("Hi!");

System.out.println(nation);

System.out.println(word);

}

}

上面这个类Person有三个方法,构造方法Person(String nation),构造方法Person(),成员方法void speak()。不同的是,构造方法不写返回值,而且修饰符一定是public的。



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