0
点赞
收藏
分享

微信扫一扫

java IO流注意项总结


在IO包中,字节流的输入输出流分别用java.io.InputStream和java.io.OutputStream表示,字符流的输入输出流分别用java.io.Reader和java.io.Writer表示。

java IO流注意项总结_后端

InputStream和OutputStream是字节流的顶级父类,所有的字节输入流都继承自InputStream,所有的字节输出流都继承自OutputStream。

java IO流注意项总结_绝对路径_02

java IO流注意项总结_绝对路径_03

public static void test1() throws Exception{
// System.out.println(System.getProperty("user.dir"));
FileInputStream in=new FileInputStream("src/src.txt");
int b=0;
while (true){
b=in.read();
if(b==-1){
break;
}
System.out.println(b);
}
in.close();
}
public static void test2() throws Exception{
FileInputStream in=new FileInputStream("src/src.txt");
int len;
byte[] bytes=new byte[1024];
while (true){
len=in.read(bytes);
System.out.println(len);
if(len==-1){
break;
}
for(int i=0;i<len;i++){
System.out.println(bytes[i]);
}
}
in.close();
}
public static void test1() throws Exception{
FileOutputStream out=new FileOutputStream("src/example.txt");
String str="java is good";
byte[] bytes=str.getBytes();
for(int i=0;i< bytes.length;i++){
out.write(bytes[i]);
}
out.close();
}
public static void test2() throws Exception{
FileOutputStream out=new FileOutputStream("src/example.txt");
String str="java is very good";
byte[] bytes=str.getBytes();
out.write(bytes);
out.close();
}

字符流

Reader和Writer作为字符流的顶级父类,也有许多子类,接下来通过继承关系图来列出Reader和Writer的一些常用子类。

java IO流注意项总结_java_04

public static void main(String[] args) throws Exception {
FileReader reader=new FileReader("src/src.txt");
int ch;
while ((ch=reader.read())!=-1){
System.out.println((char) ch);
}
reader.close();
}
public static void main(String[] args) throws Exception{
FileWriter writer=new FileWriter("src/writer.txt");
String str="大家好 各位同学";
writer.write(str);
writer.write("\r\n");//转义字符
writer.close();
}
public static void main(String[] args) throws Exception {
System.out.println(System.getProperty("user.dir"));
FileReader reader=new FileReader("src/src.txt");
BufferedReader br=new BufferedReader(reader);

FileWriter writer=new FileWriter("src/des.txt");
BufferedWriter bw=new BufferedWriter(writer);

String str=null;
while ((str=br.readLine())!=null){
bw.write(str);
bw.newLine();//额外的换行操作
}
br.close();
bw.close();
}
public static void main(String[] args) throws Exception{
FileInputStream in=new FileInputStream("src/src.txt");
InputStreamReader isr=new InputStreamReader(in);
BufferedReader br=new BufferedReader(isr);

//
OutputStream out=new FileOutputStream("src/des.txt");
OutputStreamWriter osw=new OutputStreamWriter(out);
BufferedWriter bw=new BufferedWriter(osw);

//
String line=null;
while ((line=br.readLine())!=null){
bw.write(line);
bw.newLine();
}
br.close();
bw.close();

}

File类

File类中提供了一系列方法,用于操作其内部封装的路径指向的文件或者目录,例如判断文件/目录是否存在、创建、删除文件/目录等。

java IO流注意项总结_绝对路径_05

public static void main(String[] args) {
File file=new File("src/example.txt");//相对路径
System.out.println("文件名称:"+file.getName());
System.out.println("文件的相对路径:"+file.getPath());
System.out.println("文件的绝对路径:"+file.getAbsolutePath());
System.out.println("文件的父路径:"+file.getParent());
System.out.println(file.canRead()?"文件可读":"文件不可读");
System.out.println(file.canWrite()?"文件可写":"文件不可写");
System.out.println(file.isFile()?"是一个文件":"不是一个文件");
System.out.println(file.isDirectory()?"是绝对路径":"不是绝对路径");
System.out.println("最后的修改时间:"+file.lastModified());
System.out.println("文件大小为:"+file.length()+"bytes");
System.out.println("是否成功删除文件:"+file.delete());
}
public static void main(String[] args) {
// test1();
test2();
}

//遍历目录下的文件
public static void test1(){
File file=new File("src/test");
if(file.isDirectory()){
String[] names=file.list();
for (String name:names){
System.out.println(name);
}
}
}

//遍历目录及其子目录下的文件
public static void test2(){
File file=new File("src/test");
filterDir(file);
}


private static void filterDir(File dir){
File[] files=dir.listFiles();
for(File file:files){
if(file.isDirectory()){//方法的递归
filterDir(file);
}
System.out.println(file.getAbsolutePath());
file.delete();
}
}
public static void main(String[] args) {
FilenameFilter filter=new FilenameFilter() {
@Override
public boolean accept(File dir, String name) {
File currFile=new File(dir,name);
if(currFile.isFile() && name.endsWith(".txt")){
return true;
}else {
return false;
}
}
};
File file=new File("src/test");
if(file.exists()){
String[] lists=file.list(filter);
for(String name:lists){
System.out.println(name);
}
}
}
public static void main(String[] args) {
// test1();
test2();
}

//删除普通文件
public static void test1(){
File file=new File("src/test/test1.txt");
if(file.exists()){
System.out.println(file.delete());
}
}

//删除目录及其子目录 文件
public static void test2(){
File file=new File("src/test");
deleteDir(file);
}

private static void deleteDir(File dir){
if(dir.exists()){
File[] files=dir.listFiles();
for(File file:files){
if(file.isDirectory()){
deleteDir(file);
}else {
file.delete();
}
}
dir.delete();
}
}



举报

相关推荐

0 条评论