本文概述
- Java Desktop类
- Java FileInputStream类
- Java BufferedReader类
- Java FileReader类
- Java Scanner类
- Java Nio软件包
- Java Desktop类
- Java FileInputStream类
- Java BufferedReader类
- Java FileReader类
- Java Scanner类
- Java Nio软件包
- 使用可选的mail-to URI启动用户默认邮件客户端。
- 启动注册的应用程序以打开, 编辑或打印指定的文件。
public void open (File file) throws IOException
该方法引发以下异常:
- NullPointerException:如果文件为null。
- IllegalArgumentException:当文件不存在时引发。
- IOException:当没有与给定文件类型关联的应用程序时引发。
- UnsupportedOperationExecution:如果当前平台不支持Desktop.Action.Open操作。
import java.awt.Desktop;
import java.io.*;
public class OpenFileExample1 {public static void main(String[] args) {try{//constructor of file class having file as argumentFile file = new File("C:\\demo\\demofile.txt");
if(!Desktop.isDesktopSupported())//check if Desktop is supported by Platform or not{System.out.println("not supported");
return;
}Desktop desktop = Desktop.getDesktop();
if(file.exists())//checks file exists or notdesktop.open(file);
//opens the specified file}catch(Exception e){e.printStackTrace();
}}}
当我们运行上述程序时, 它将在默认文本编辑器中打开指定的文本文件。我们还可以打开.docx, .pdf和.jpg文件。
输出:
文章图片
Java FileInputStream类 Java FileInputStream类用于打开和读取文件。我们可以使用FileInputStream类的构造函数打开和读取文件。构造函数的签名是:
public FileInputStream(File file) throws FileNotFoundException
它接受文件作为参数。如果文件不存在或文件名是目录, 则抛出FileNotFoundException。
例
import java.io.*;
import java.util.Scanner;
public class OpenFileExample2{ public static void main(String args[]){try{//constructor of file class having file as argumentFile file=new File("C:\\demo\\demofile.txt");
FileInputStream fis=new FileInputStream(file);
//opens a connection to an actual fileSystem.out.println("file content: ");
int r=0;
while((r=fis.read())!=-1){System.out.print((char)r);
//prints the content of the file}}catch(Exception e){e.printStackTrace();
}}}
输出:
文章图片
Java BufferedReader类 Java BufferedReader类从字符输入流读取文本。它属于java.io包。我们使用BufferedReader类的构造函数来打开或读取文件。构造函数的签名是:
public BufferedReader(Reader in)
它创建一个使用默认大小的输入缓冲区的缓冲字符输入流。它使用默认大小的输入缓冲区。
例
import java.io.*;
import java.util.Scanner;
public class OpenFileExample3{ public static void main(String args[]){try{//constructor of File class having file as argumentFile file=new File("C:\\demo\\demofile.txt");
//creates a buffer reader input streamBufferedReader br=new BufferedReader(new FileReader(file));
System.out.println("file content: ");
int r=0;
while((r=br.read())!=-1){System.out.print((char)r);
}}catch(Exception e){e.printStackTrace();
}}}
输出:
文章图片
Java FileReader类 Java FileReader类也用于打开和读取文件。它属于java.io包。这是读取文件字符的便利。它用于使用FileInputStream类读取原始字节。我们使用FileInputStream类的构造函数来打开和读取文件。构造函数的签名是:
public FileReader(File file) throws FileNotFoundException
它接受文件作为参数。如果指定的文件不存在或文件名是目录, 则抛出FileNotFoundException。
例
import java.io.*;
public class OpenFileExample4{ public static void main(String args[]){try{//constructor of the File class having file as an argumentFileReader fr=new FileReader("C:\\demo\\demofile.txt");
System.out.println("file content: ");
int r=0;
while((r=fr.read())!=-1){System.out.print((char)r);
//prints the content of the file }}catch(Exception e){e.printStackTrace();
}}}
输出:
文章图片
Java Scanner类 Java Scanner类也用于打开和读取文件。 Scanner类属于java.util包。 Scanner类的构造函数用于打开和读取文件。构造函数的签名是:
public scanner (File source) throws FileNotFoundException
它接受文件(要扫描)作为参数。如果找不到文件源, 它也会引发FileNotFoundException。
例
import java.io.File;
import java.util.Scanner;
public class OpenFileExample5{ public static void main(String[] args) { try{File file=new File("C:\\demo\\demofile.txt");
Scanner sc = new Scanner(file);
//file to be scannedwhile (sc.hasNextLine())//returns true if and only if scanner has another tokenSystem.out.println(sc.nextLine());
}catch(Exception e){e.printStackTrace();
}} }
输出:
文章图片
Java Nio软件包 readAllLines()方法:readAllLines()方法是File类的方法。它从文件读取所有行, 并使用UTF-8字符集将文件中的字节解码为字符。它将文件中的行作为列表返回。该方法的签名是:
public static List<
String>
readAllLines(Path path) throws IOException
其中path是文件路径。
上面的方法等效于调用以下方法:
File.readAllLines(path, Standard CharSets.UTF_8)
Collections.emptyList():emptyList()方法是属于java.util包的Collection类的方法。它用于获取一个空列表。该方法的签名是:
public static final <
T>
List <
T>
emptyList()
例
import java.util.*;
import java.nio.charset.StandardCharsets;
import java.nio.file.*;
import java.io.*;
public class OpenFileExample6{ public static List<
String>
readFileInList(String fileName) { List<
String>
lines = Collections.emptyList();
try{ lines=Files.readAllLines(Paths.get(fileName), StandardCharsets.UTF_8);
} catch (IOException e) { e.printStackTrace();
} return lines;
} public static void main(String[] args) { List l = readFileInList("C:\\demo\\demofile.txt");
Iterator<
String>
itr = l.iterator();
//access the elementswhile (itr.hasNext())//returns true if and only if scanner has another tokenSystem.out.println(itr.next());
//prints the content of the file} }
【如何用Java打开文件】输出:
文章图片
推荐阅读
- 如何在Java中读取CSV文件
- 如何在Java中打印数组
- 如何在Java中合并两个数组
- 如何在Java中遍历Map
- 如何在Java中从用户获取输入
- 如何用Java创建文件
- 如何在Java中将字节数组转换为String
- 如何编译和运行Java程序
- “双 亲 委 派 机 制”