问题:
有一个困惑的问题 如下:
java.util.Properties 在读取 FileInputstream 和 输出 FileOutPutStream 的时候
在有些源码里面 FileInputstream & FileOutPutStream 都没有调用close()方法
我个人认为需要调用 close() 因为经过测试 发现在 load 之后没有自动调用 close()方法
请各位给我一个答案谢谢import java.util.*;
import java.io.*;
public class PropertiesFile
{
static String fileName = "count.txt";
public static void main(String[]args)
{
Properties prop = new Properties();
int count = readCount(prop);
System.out.println(count);
storeCount(prop,count);
}
static int readCount(Properties prop)
{
int count = 0 ;
try
{
FileInputStream input = new FileInputStream(fileName);
prop.load(input);
count = Integer.parseInt(prop.getProperty("count"))+1;
///input.close();
input.read();
System.out.println(input);
}
catch(NumberFormatException ex)
{
storeCount(prop,0);
}
catch(Exception ex)
{
ex.printStackTrace();
}
return count;
}
static void storeCount(Properties prop,int count)
{
prop.setProperty("count",count+"");
try
{
prop.store(new FileOutputStream(fileName),"count \n"+new Date());
}
catch(Exception ex)
{
ex.printStackTrace();
}
}
有一个困惑的问题 如下:
java.util.Properties 在读取 FileInputstream 和 输出 FileOutPutStream 的时候
在有些源码里面 FileInputstream & FileOutPutStream 都没有调用close()方法
我个人认为需要调用 close() 因为经过测试 发现在 load 之后没有自动调用 close()方法
请各位给我一个答案谢谢import java.util.*;
import java.io.*;
public class PropertiesFile
{
static String fileName = "count.txt";
public static void main(String[]args)
{
Properties prop = new Properties();
int count = readCount(prop);
System.out.println(count);
storeCount(prop,count);
}
static int readCount(Properties prop)
{
int count = 0 ;
try
{
FileInputStream input = new FileInputStream(fileName);
prop.load(input);
count = Integer.parseInt(prop.getProperty("count"))+1;
///input.close();
input.read();
System.out.println(input);
}
catch(NumberFormatException ex)
{
storeCount(prop,0);
}
catch(Exception ex)
{
ex.printStackTrace();
}
return count;
}
static void storeCount(Properties prop,int count)
{
prop.setProperty("count",count+"");
try
{
prop.store(new FileOutputStream(fileName),"count \n"+new Date());
}
catch(Exception ex)
{
ex.printStackTrace();
}
}
解决方案 »
免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货