记事本中的打开文本文件的功能:JFileChooser openFileChooser = new JFileChooser();
openFileChooser.setDialogTitle("请选择文件...");
//设置名字
openFileChooser.showOpenDialog(null);//null表示用默认属性
openFileChooser.setVisible(true);
//得到用户选择的文件绝对路径
String fileName = openFileChooser.getSelectedFile().getAbsolutePath();
//字符流用bufferReader
BufferedReader br = null;
String allContent = "";
try {
br = new BufferedReader(new InputStreamReader(new FileInputStream(
fileName), "utf-8"));
String line = "";
while ((line = br.readLine())!= null) {
if(!line.equals("\r\n"))
allContent += line+ "\r\n";
}
jta.setText(allContent);
}catch (Exception e1) {
} finally {
try {
if (br != null)
br.close();
} catch (IOException e2) {
}
}
}
}每次读完一行都会多输出一行空行:
比如说文件是这样的:
--------------------------------------
哈哈哈哈
哈哈哈哈哈哈哈哈
--------------------------------------
读到JTextArea中的文本就会是:
--------------------------------------
哈哈哈哈哈哈哈哈哈哈哈哈
--------------------------------------
因为windows中的换行是\r\n
所以bw.readline()遇到\r就会停止然后换行,遇到\n又换行,所以会多输出一个空行,
请问这种情况该如何解决!(文本中的空行要原样输出空行)
JavaStringWindows
openFileChooser.setDialogTitle("请选择文件...");
//设置名字
openFileChooser.showOpenDialog(null);//null表示用默认属性
openFileChooser.setVisible(true);
//得到用户选择的文件绝对路径
String fileName = openFileChooser.getSelectedFile().getAbsolutePath();
//字符流用bufferReader
BufferedReader br = null;
String allContent = "";
try {
br = new BufferedReader(new InputStreamReader(new FileInputStream(
fileName), "utf-8"));
String line = "";
while ((line = br.readLine())!= null) {
if(!line.equals("\r\n"))
allContent += line+ "\r\n";
}
jta.setText(allContent);
}catch (Exception e1) {
} finally {
try {
if (br != null)
br.close();
} catch (IOException e2) {
}
}
}
}每次读完一行都会多输出一行空行:
比如说文件是这样的:
--------------------------------------
哈哈哈哈
哈哈哈哈哈哈哈哈
--------------------------------------
读到JTextArea中的文本就会是:
--------------------------------------
哈哈哈哈哈哈哈哈哈哈哈哈
--------------------------------------
因为windows中的换行是\r\n
所以bw.readline()遇到\r就会停止然后换行,遇到\n又换行,所以会多输出一个空行,
请问这种情况该如何解决!(文本中的空行要原样输出空行)
JavaStringWindows
while ((line = br.readLine())!= null) {
if(!line.equals("\r\n"))
allContent += line+ "\r\n";
}这段代码可以解决每行多输出空行的问题,但是遇到原有的空行就不输出空行了!