NETBEAN中,对于流的操作,下面介绍一两个对于流的读写操作。
//文件的读操作
private void input_Action(java.awt.event.ActionEvent evt) {
File f=new File("src/aa.txt");//定义文件的路径,存放在项目的源文件路径下
if(!f.exists()){ //判断文件是否存在
JOptionPane.showMessageDialog(this, "不存在该文件);
return;
}
try {
//创建输入流缓冲区流BufferedReader的对象input,并将其指向读文件流FileReader(f)
BufferedReader input = new BufferedReader(new FileReader(f));
StringBuffer buffer=new StringBuffer();//创建可变字符串类对象buffer
String text=null;
try {
while ((text = input.readLine()) != null) {
//shiyong readLine() 方法,来对文件内容实现按行读取,并将内容存储于字符串text中
buffer.append(text + "\n");//将字符串内容加入到可变字符串中
}
input.close();//关闭输入流
} catch (IOException ex) {
Logger.getLogger(Test1.class.getName()).log(Level.SEVERE, null, ex);
}
} catch (FileNotFoundException ex) {
Logger.getLogger(Test1.class.getName()).log(Level.SEVERE, null, ex);
}
/* 另一种文件读操作
byte[] strs=new byte[2500];
InputStream input;
try {
input = new FileInputStream(f);//创建一个文件输入流,用来指向之前的文件对象f
try {
int len = input.read(strs,0,2500);//使用read()方法读取文件中的内容,并保存在字节数组strs中
String str = new String(strs,0,b,"Default");//创建字符串str,用来转换并存储字节数组中内容
input.close();//关闭输入流
} catch (IOException ex) {
Logger.getLogger(Test1.class.getName()).log(Level.SEVERE, null, ex);
}
} catch (FileNotFoundException ex) {
Logger.getLogger(Test1.class.getName()).log(Level.SEVERE, null, ex);
}*/
}
//文件的写操作
private void output_Action(java.awt.event.ActionEvent evt) {
String txtValue = jtxtValue.getText().trim();
if("".equals(txtValue)){
javax.swing.JOptionPane.showMessageDialog(this, "当前文本框为赋值,不能进行导出操作!", "报错", JOptionPane.INFORMATION_MESSAGE);
return;
}
File f=new File("src/aa.txt");
try {
/*本方法存在问题:如果写入的是中文,中文会出现乱码
OutputStream out;
try {
out = new FileOutputStream(f);
try {
out.write(txtValue.getBytes(), 0, txtValue.length());
JOptionPane.showMessageDialog(this, "导出成功!");
out.close();
} catch (IOException ex) {
Logger.getLogger(Test1.class.getName()).log(Level.SEVERE, null, ex);
}
} catch (FileNotFoundException ex) {
Logger.getLogger(Test1.class.getName()).log(Level.SEVERE, null, ex);
}
*/
//该方法已经解决了中文乱码的问题
Writer w = new FileWriter(f);
w.write(txtValue);设置写入操作
w.flush();//缓冲区的一个操作
w.close();关闭写入流
} catch (IOException ex) {
Logger.getLogger(Test1.class.getName()).log(Level.SEVERE, null, ex);
}
}