我的程序读入各种大小的文本文件.然后它从文本文件中获取数字并根据数字创建数组列表.我计划使用的最大文件是286,040 KB.当我运行我的程序并且它读取文件时,我的程序停止工作.
我怎么知道我的java程序可以处理的最大大小是多少?有没有办法计算我的java程序可以处理的文件大小?
另外,使我的程序能够容纳如此大尺寸的数组列表的最佳建议是什么?但是,我听说过哈希表; 我无法完全理解这个概念.
每个请求,我正在添加我上传文件的方式:
String name = getFileName();
Scanner scanDaily = new Scanner(new File(name));
public static String getFileName()
{ //getFileName
Scanner getName = new Scanner (System.in);
System.out.println("Please input File Name");
String fileName = getName.nextLine();
return fileName;
} //getFileName
Run Code Online (Sandbox Code Playgroud)
更新:谢谢那些回复,非常有帮助的人
新问题
我现在想把文件中的数字读成一个arraylist
String name = getFileName();
FileReader f= new FileReader(new File(name));
BufferedReader bf=new BufferedReader(f);
Scanner sc=new Scanner(bf);
ArrayList<Double> ID = new ArrayList<Double>();
ArrayList<Double> Contract = new ArrayList<Double>();
ArrayList<Double> Date = new ArrayList<Double>();
ArrayList<Double> Open = new ArrayList<Double>();
ArrayList<Double> High = new ArrayList<Double>();
ArrayList<Double> Low = new ArrayList<Double>();
ArrayList<Double> Close = new ArrayList<Double>();
ArrayList<Double> Volume = new ArrayList<Double>();
int rows = 8;
int counter1 = 0;
//Update code to prompt user for file
ArrayList<Double> list = new ArrayList<Double>();
while (scanDaily.hasNext())
{ //while
double value = scanDaily.nextDouble();
DecimalFormat df = new DecimalFormat("#.#####");
df.format(value);
list.add(value);
} //while
Run Code Online (Sandbox Code Playgroud)
在我使用扫描仪读取我的文件之前,该扫描仪被命名为scandaily.现在我有一个文件读取器和一个缓冲读卡器,我用哪个来浏览我的txt文件?
你真的需要将整个文件放在内存中吗?
对于简单的治疗,您应该考虑使用BufferedReader,尤其是BufferedReader.readLine
您可以对文件的每一行执行操作,因此您不再需要加载整个文件.