文件选择器无法打开我的文件
File Chooser is unable to open my file
所以我最近遇到了这个问题,我的 txt 文件无法打开。
我不确定我到底哪里出错了。这是我的文件选择器 class.
中的代码
import java.io.BufferedReader;
import java.io.File;
import java.io.FileNotFoundException;
import java.io.FileReader;
import java.io.IOException;
import javax.swing.JFileChooser;
import javax.swing.JFrame;
import javax.swing.JTextArea;
public class FileChooser {
public static void emailFile(JTextArea textRecepients) throws IOException {
JFileChooser chooser = new JFileChooser();
chooser.setCurrentDirectory(new File("."));
chooser.setFileFilter(new javax.swing.filechooser.FileFilter() {
public boolean accept(File f) {
return f.getName().toLowerCase().endsWith(".txt")
|| f.isDirectory();
}
public String getDescription() {
return "txt file";
}
});
int r = chooser.showOpenDialog(new JFrame());
if (r == JFileChooser.APPROVE_OPTION) {
String name = chooser.getSelectedFile().getName();
System.out.println(name);
String line;
try {
FileReader fileReader = new FileReader(name);
BufferedReader bufferedReader = new BufferedReader(fileReader);
while((line = bufferedReader.readLine()) != null) {
textRecepients.setText(line);
}
bufferedReader.close();
} catch(FileNotFoundException ex) {
System.out.println("Unable to open file '" + name + "'");
}
}
}
它应该使用 JFileChooser
获取我的 txt 文件并在 JTextArea
.
中逐行打印内容
您需要使用
String path = chooser.getSelectedFile().getAbsolutePath();
而不是获取名称。
问题是每次循环都会覆盖文本:
while((line = bufferedReader.readLine()) != null) {
textRecepients.setText(line);
}
使用 StringBuilder
:
(在 try
块之前):
StringBuilder sb = new StringBuilder();
然后在块中:
while ((line = bufferedReader.readLine()) != null) {
sb.append(line+"\n");
}
textRecepients.setText(sb.toString());
...
所以我最近遇到了这个问题,我的 txt 文件无法打开。 我不确定我到底哪里出错了。这是我的文件选择器 class.
中的代码import java.io.BufferedReader;
import java.io.File;
import java.io.FileNotFoundException;
import java.io.FileReader;
import java.io.IOException;
import javax.swing.JFileChooser;
import javax.swing.JFrame;
import javax.swing.JTextArea;
public class FileChooser {
public static void emailFile(JTextArea textRecepients) throws IOException {
JFileChooser chooser = new JFileChooser();
chooser.setCurrentDirectory(new File("."));
chooser.setFileFilter(new javax.swing.filechooser.FileFilter() {
public boolean accept(File f) {
return f.getName().toLowerCase().endsWith(".txt")
|| f.isDirectory();
}
public String getDescription() {
return "txt file";
}
});
int r = chooser.showOpenDialog(new JFrame());
if (r == JFileChooser.APPROVE_OPTION) {
String name = chooser.getSelectedFile().getName();
System.out.println(name);
String line;
try {
FileReader fileReader = new FileReader(name);
BufferedReader bufferedReader = new BufferedReader(fileReader);
while((line = bufferedReader.readLine()) != null) {
textRecepients.setText(line);
}
bufferedReader.close();
} catch(FileNotFoundException ex) {
System.out.println("Unable to open file '" + name + "'");
}
}
}
它应该使用 JFileChooser
获取我的 txt 文件并在 JTextArea
.
您需要使用
String path = chooser.getSelectedFile().getAbsolutePath();
而不是获取名称。
问题是每次循环都会覆盖文本:
while((line = bufferedReader.readLine()) != null) {
textRecepients.setText(line);
}
使用 StringBuilder
:
(在 try
块之前):
StringBuilder sb = new StringBuilder();
然后在块中:
while ((line = bufferedReader.readLine()) != null) {
sb.append(line+"\n");
}
textRecepients.setText(sb.toString());
...