Java-Stream File IO
Java流(Stream)、文件(File)和IO
- Java.io包几乎包含了所有的操作输入、输出需要的类。所有这些流类代表了输入源和输出目标
- 一个流可以理解为一个数据序列。输入流表示从一个源读取数据,输出流表示向一个目标写数据
读取控制台输入
-
Java的控制台输入由
System.in完成;为获得一个绑定到控制台的字符流,可以把System.in包装在一个BufferedReader对象中来创建一个字符流BufferedReader br = new BufferedReader(new
InputStreamReader(System.in)); -
BufferedReader对象创建后,可以使用read()方法从控制台读取一个字符,或者用readLine()方法读取一个字符串 -
从控制台读取多字符输入
import java.io.*;
public class BRRead {
public static void main(String args[]) throws IOException
{
char c;
// 使用System.in 创建 BufferedReader
BufferedReader br = new BufferedReader(new
InputStreamReader(System.in));
System.out.println("输入字符,按下‘q’键退出。");
// 读取字符
do {
c = (char) br.read();
System.out.println(c);
} while(c != 'q');
}
} -
从控制台读取字符串
import java.io.*;
public class BRReadLines {
public static void main(String args[]) throws IOException
{
// 使用 System.in 创建 BufferedReader
BufferedReader br = new BufferedReader(new
InputStreamReader(System.in));
String str;
System.out.println("Enter lines of text.");
System.out.println("Enter 'end' to quit.");
do {
str = br.readLine();
System.out.println(str);
} while(!str.equals("end"));
}
}
控制台输出
-
控制台的输出由
print()和println()完成import java.io.*;
// 演示 System.out.write()
// write() 不常用
public class WriteDemo {
public static void main(String args[]) {
int b;
b = "A";
System.out.write(b);
System.out.write('\n');
}
}
读写文件
-
FlieInputStream用于读取文件// 使用字符串类型的文件名创建一个输入流对象读取文件
InputStream f = new FileInputStream("C:/java/hello");
// 使用文件对象创建输入流对象来读取文件
File f = new File("C:/java/hello");
InputStream out = new FileInputStream(f); -
FileOutputStream用来创建一个文件并向文件中写数据
如果该流在打开文件进行输出前,目标文件不存在,那么该流会创建文件// 使用字符串类型的文件来创建一个输出流对象
OutputStream f = new FileOutputStream("C:/java/hello")
// 使用一个文件对象创建一个输出流来写文件
File f = new File("C:/java/hello");
OutputStream f = new FileOutputStream(f); -
实例
import java.io.*;
public class filrStreamTest{
public static void main(String args[]) {
try{
byte bWrite [] = {12, 32, 3, 20};
OutputStream os = new FileOutputStream("test.txt");
for(int x = 0;x < bWrite.length;x++) {
os.write(bWrite[x]);
}
os.close();InputStream is = new FileInputStream("test.txt");
int size = is.available();for(int i = 0; i < size; i++) {
System.out.print((char) is.read() + " ");
}
is.close();
} catch(IOException e) {
System.out.print("Exception");
}
}
}
Java中的目录
- 创建目录
-
mkdir()方法创建一个文件夹,成功返回true,失败返回false -
mkdirs()方法创建一个文件夹和它的所有父文件夹import java.io.File;
public class CreateDir {
public static void main (String args[]) {
String dirname = "/tmp/user/java/bin";
File d = new File(dirname);
//创建目录
d.mkdirs();
}
}
- 读取目录
-
如果创建一个file对象并且它是一个目录,调用
isDirectory()方法会返回true -
调用对象上的
list()方法,提取包含的文件和文件列表import java.io.File;
public class DirList {
public static void main(String args[]) {
String dirname = "/tmp";
File f1 = new File(dirname);
if (f1.isDirectory()) {
System.out.println("目录" + dirname);
String s[] = f1.list();
for (int i = 0; i < s.length; i++) {
File f = new File(dirname + "/" + s[i]);
if (f.isDirectory()) {
System.out.println(s[i] + "是一个目录");
} else {
System.out.println(s[i] + "是一个文件");
}
}
} else {
System.out.println(dirname + "不是一个目录");
}
}
}
-
删除目录或文件 可以调用
java.io.File.delete()方法import java.io.File;
public class DeleteFileDemo {
public static void main(String args[]) {
File folder = new File("/tmp/java/");
deleteFolder(folder);
}
//删除文件及目录
piblic static void deleteFolder(File folder) {
File[] files = folder.listFiles();
if(files!=null) {
for(File f: files) {
if(f.isDirectory()) {
deleteFolder(f);
} else {
f.delete();
}
}
}
folder.delete();
}
}

浙公网安备 33010602011771号