Java中的IO包含流(Stream)、文件(File)的IO,所有IO类都定义在java.io包中。
1、输入
Java的控制台输入由System.in完成。为了获取控制台的输入,可以把System.in封装在一个BufferedReader对象进行操作。样例:
BufferedReader bReader = new BufferedReader(new InputeStreamReader(System.in));
然后对bReader对象进行操作。
1) bReader.read():
从控制台读取一个字符并按照int返回。流读取结束时时候返回-1,并抛出一个IOException。read()函数定义如下:
int read( ) throws IOException
2) br.readline()
从控制台读取一行字符串,返回String类型。readline()函数定义如下:
String readLine( ) throws IOException
样例:
char c;
c = (char)br.read();
System.out.printfln(c);
String str;
str = br.readline();
System.out.println(str);
2、输出:
输出常用的是print()、println()方法,这些方法都由PrintStream类定义。System.out是称PrintStream类对象的一个引用。
样例:
System.out.println(“Hello World!”);
PrintStream类继承自OutputStream类。PrintStream类重写了write()方法,也可使用write()方法向控制台写内容。
样例:
int b;
b = ‘A’;
System.out.write(b);
System.out.write(‘\n’);
write()方法不经常使用,因为print()和println()方法更方便。
3、通过Scanner类从控制台输入:
java.util.scanner是Java5引入的特性。
1) 使用Scanner类读取字符串:
一般采用next()、或nextline()方法读取字符串,读取线采用hasNext()、或hasNextline()方法判断是否还有输入。
样例:
Scanner scan = New Scanner(System.in);
if(scan.hasnext()) {
String str = scan.next();
System.out.Println(str);
}
next()和nextline()方法的区别:
a) nextline()读取整行内容,包含空白字符,直到行结尾Enter结束。
b) next()无法读取空白字符。首个有效字符前的空白字符会被忽略。读取到有效字符后的空白字符结束。
2) 使用Scanner类读取其他数据类型:
整数:hasNextInt() nextInt()
浮点数:hasNextFloat() nextFloat()
文件操作的类是FileInputStream和FileOutputStream。
1、输入:
通过文件名创建FileInputStream对象:
FileInputStream fStream = new FileInputStream("d:/helllo/hello.txt");
通过文件对象来创建FileInputStream对象:
File filehandle = new File("d:/helllo/hello.txt");
FileInputStream fStream = new FileInputStream(filehandle);
FileInputStram类的方法:
1) public void close() throws IOException{}
关闭文件。
2) potected void finallize() throws IOException{}
清除该文件的链接。
3) public int read(int r) throws IOException{}
从InputSteam中读取指定字节的数据,并自动指向下一个字节数据。读取到末尾返回-1。
4) public int read(byte[] b) throws IOException{}
从InputeStream中读取b.length字节的数据。返回读取的字节数,读取到默认返回-1。
5) public int available() throws IOException{}
返回下一次对此输入流可调用方法可不受阻塞读取的字节数。
样例:
FileInputStream fStream = new FileInputStream(“d:/helllo/hello.txt”);
int size = fStream.available();
for(i= 0; i<size; i++)
{
Systemm.out.println((char)fStream.read())
}
fStream.close();
2、输出:
通过文件名创建FileOutputStream对象:
FileOutputStream fStream = new FileOutputStream("d:/helllo/hello.txt");
通过文件对象来创建FileOutputStream对象:
File fHandle =new File("d:/helllo/hello.txt");
FileOutputStream fStream = new FileOutputStream(fHandle);
FileOuputeStram类的方法:
1) public void close() throws IOException{}
关闭文件。
2) potected void finallize() throws IOException{}
清除该文件的链接。
3) public void write(int r) throws IOException{}
把参数字节值输入到文件流中。
4) public void wtire(byte[] b) throws IOException{}
把b.length字节的数据输入到文件流中。
样例:
FileOutputStream fStream = new FileOutputStream (“d:/helllo/hello.txt”);
char[] cHello = {‘H’, ’e’, ’l’, ’l’, ’o’, ‘!’};
fStream.write(cHello);
fStream.close();
更多细节,请详细了解:File类、FileReader类、FileWriter类。
File类中有两个方法来创建文件夹:
1) mkdir():创建一个文件夹,成功返回true
2) mkdirs():循环创建一个文件夹、及其所有父文件夹
File类中有如下方法读取文件夹:
1) isDirectory():判断File对象是否为一个文件夹
2) list():读取File对象包含的文件、文件夹列表
File类中删除文件夹、或文件:
1) delete():删除文件
2) deleteFolder():删除文件夹
样例:
File folder = new File("/tmp");
File[] files = folder.filelistFiles();
if(files != NULL) {
for(File f : files) {
if (f.isDirectory()) {
deleteFolder(f);
} else {
f.delete();
}
}
}
folder.delete()
原文:https://www.cnblogs.com/yickel/p/11837411.html