Java帮助读取文件
我有一段代码我就是不知道该怎么处理。它应该显示一个对话框来选择一个文件,当选择该文件时,它会将结果输出到一个历史图中。我所有的东西都在工作,除了我不知道我需要把什么变量作为text2Java帮助读取文件,java,file-io,Java,File Io,我有一段代码我就是不知道该怎么处理。它应该显示一个对话框来选择一个文件,当选择该文件时,它会将结果输出到一个历史图中。我所有的东西都在工作,除了我不知道我需要把什么变量作为text2 private int[] countLetters2() { // Count for 26 letters int[] count = new int[26]; //get contents from file chooser.showOpenDialog(null); File f
private int[] countLetters2()
{
// Count for 26 letters
int[] count = new int[26];
//get contents from file
chooser.showOpenDialog(null);
File f = chooser.getSelectedFile();
try
{
FileReader fr = new FileReader(f);
BufferedReader br = new BufferedReader(fr);
String s;
while((s = br.readLine()) != null)
{
System.out.println(s); <------simply to see if the reader and buffer were working
}
}
catch(IOException g) {}
String text2 = ; <------------------------------------this is the problem
//converts every letter to uppercase
text2 = text2.toUpperCase();
//Count occurrence of each letter (case insensitive)
for (int i = 0; i < text2.length(); i++)
{
char character = text2.charAt(i);
if ((character >= 'A') && (character <= 'Z'))
{
count[(int)character - 65]++; // The ASCII for 'A' is 65
}
}
return count; // Return the count array
private int[]countLetters2()
{
//数到26个字母
int[]计数=新的int[26];
//从文件中获取内容
chooser.showOpenDialog(空);
文件f=chooser.getSelectedFile();
尝试
{
FileReader fr=新的FileReader(f);
BufferedReader br=新的BufferedReader(fr);
字符串s;
而((s=br.readLine())!=null)
{
System.out.println(s);只需收集到while循环中的text2变量
String text2 = "";
try { FileReader fr = new FileReader(f); BufferedReader br = new BufferedReader(fr); String s="" while((s = br.readLine()) != null) {
text2+=s;
ystem.out.println(s);
} } catch(IOException g) {}
或
将计数字符的循环移动到打印行的循环中
private int[] countLetters2()
{
// Count for 26 letters
int[] count = new int[26];
//get contents from file
chooser.showOpenDialog(null);
File f = chooser.getSelectedFile();
try
{
FileReader fr = new FileReader(f);
BufferedReader br = new BufferedReader(fr);
String s;
while((s = br.readLine()) != null)
{
System.out.println(s);
//converts every letter to uppercase
String text2 = s.toUpperCase();
//Count occurrence of each letter (case insensitive)
for (int i = 0; i < text2.length(); i++)
{
char character = text2.charAt(i);
if ((character >= 'A') && (character <= 'Z'))
{
count[(int)character - 65]++; // The ASCII for 'A' is 65
}
}
}
}
catch(IOException g) {}
return count;
}
private int[]countLetters2()
{
//数到26个字母
int[]计数=新的int[26];
//从文件中获取内容
chooser.showOpenDialog(空);
文件f=chooser.getSelectedFile();
尝试
{
FileReader fr=新的FileReader(f);
BufferedReader br=新的BufferedReader(fr);
字符串s;
而((s=br.readLine())!=null)
{
系统输出打印项次;
//将每个字母转换为大写
字符串text2=s.toUpperCase();
//计数每个字母的出现次数(不区分大小写)
对于(int i=0;i 如果((字符>='A')&&(character我认为使用BufferedReader
逐行检查文件,然后逐行检查每个字符是没有意义的。这是不必要的复杂和低效的,因为您基本上只想迭代所有字符:这正是阅读器
提供的功能首先是你
您可以这样大大简化您的日常工作:
[...]
BufferedReader br = new BufferedReader(fr);
for (int c; (c = br.read()) > -1;) {
char character = Character.toUpperCase((char) c);
if ((character >= 'A') && (character <= 'Z')) {
count[character - 'A']++;
}
}
} catch (IOException g) { /* this is no good */ }
return count;
[…]
BufferedReader br=新的BufferedReader(fr);
对于(int c;(c=br.read())>-1;){
char character=character.toUpperCase((char)c);
如果((character>='A')&&(character)您试图提供整个文件或每行的历史图,请将其更改为直接收集到您的文本2中
[...]
BufferedReader br = new BufferedReader(fr);
for (int c; (c = br.read()) > -1;) {
char character = Character.toUpperCase((char) c);
if ((character >= 'A') && (character <= 'Z')) {
count[character - 'A']++;
}
}
} catch (IOException g) { /* this is no good */ }
return count;