java中的文件存取与读取
发布网友
发布时间:2022-04-15 07:19
我来回答
共3个回答
热心网友
时间:2022-04-15 08:49
读写是两个不同的分支,通常都是分开单独使用的。
可以通过BufferedReader 流的形式进行流缓存,之后通过readLine方法获取到缓存的内容。
BufferedReader bre = null;
try {
String file = "D:/test/test.txt";
bre = new BufferedReader(new FileReader(file));//此时获取到的bre就是整个文件的缓存流
while ((str = bre.readLine())!= null) // 判断最后一行不存在,为空结束循环
{
System.out.println(str);//原样输出读到的内容
};
备注: 流用完之后必须close掉,如上面的就应该是:bre.close(),否则bre流会一直存在,直到程序运行结束。
可以通过“FileOutputStream”创建文件实例,之后过“OutputStreamWriter”流的形式进行存储,举例:
OutputStreamWriter pw = null;//定义一个流
pw = new OutputStreamWriter(new FileOutputStream(“D:/test.txt”),"GBK");//确认流的输出文件和编码格式,此过程创建了“test.txt”实例
pw.write("我是要写入到记事本文件的内容");//将要写入文件的内容,可以多次write
pw.close();//关闭流
备注:文件流用完之后必须及时通过close方法关闭,否则会一直处于打开状态,直至程序停止,增加系统负担。
热心网友
时间:2022-04-15 10:07
private static String readDataFromTxT() {
String line = ""; //用来保存每一行的数据
String alltxt="";//保存全部文本数据
try{
String pathname="/home/shenlei/test.txt";
File filename = new File(pathname);
InputStreamReader reader = new InputStreamReader(
new FileInputStream(filename)); // 建立一个输入流对象reader
BufferedReader br = new BufferedReader(reader); // 建立一个对象,它把文件内容转成计算机能读懂的语言
line=alltxt=br.readLine();
int i=0;
while (line != null) {
if(i==0){
line=br.readLine();
i++;
}
else{
alltxt=alltxt+";"+line;
line=br.readLine();
i++;
}
}
}
catch (Exception e) {
e.printStackTrace();
}
return alltxt;
}
我是分行读入的;现在运行这个程序段。如果我的txt文件是
hello 88
shenlei 85
zhangqiongying 90
输出就是
hello 88;shenlei 85;zhangqiongying 90
我这样的的话到时候就可以人为的通过分号分组了,以后就很好操作数据。
希望可以帮助你
追问用buffer是很好实现,现在我想用对象输入输出流
热心网友
时间:2022-04-15 11:41
ObjectInputStream 读取追问重新打开后的调用写进这里面。那么程序刚开始文件内是空的。会报错