私はJavaプログラミングの初心者です。課題を準備していますが、コードについてサポートが必要です。指示には、自分のメソッドnumberOfRows()
とconvertFileArray()
メソッドで例外を処理する必要があると書かれています。演習では、csvファイルからの読み取り、ファイルの多次元配列への変換、画面への配列の印刷で構成されます。私のプログラムは正常に動作しますが、私が抱えている唯一の問題は、これら2つの方法で処理できる例外がわからないことです。
どうしたらいいかわからないという理由だけで、一般的な例外を書きました。どんな提案も本当に役に立ちます。また、try-catchブロックを配置する必要があるクラスのみを投稿しています。前もって感謝します。
これが私のコードです:
import java.io.*;
import java.nio.file.*;
import java.util.StringTokenizer;
public class ReadFiles {
int rows = 0;
int columns = 0;
String s = null;
private String[][] arrayValues;
Path filePath;
public ReadFiles(String name) {
filePath = Paths.get("C:\\stocks\\" + name); //newMSFT.csv
System.out.println("Path for file entered " + filePath.toString());
}
public boolean fileExists() {
if(Files.exists(filePath))
return true;
else
return false;
}
public int numberOfRows() {
try {
InputStream data = new BufferedInputStream(
Files.newInputStream(filePath));
BufferedReader reader = new BufferedReader(
new InputStreamReader(data));
s = reader.readLine();
while(s != null) {
rows++;
s = reader.readLine();
}
}
catch(Exception e) {
System.out.println("Message: " + e);
}
return rows;
}
public void convertFileArray() {
try {
InputStream data = new BufferedInputStream(
Files.newInputStream(filePath));
BufferedReader reader = new BufferedReader(
new InputStreamReader(data));
s = reader.readLine();
StringTokenizer z = new StringTokenizer(s, ",");
columns = z.countTokens();
arrayValues = new String[rows][columns];
for(int x = 0; x < rows; x++) {
z = new StringTokenizer(s, ",");
//when there are still more tokens, place it in the array:
int y = 0;
while(z.hasMoreTokens()) {
arrayValues[x][y] = z.nextToken();
y++;
}
s = reader.readLine();
}
System.out.println("An array was created and has " +
rows + " rows and " + columns + " columns.");
}
catch(Exception e) {
System.out.println("Message: " + e);
e.printStackTrace();
}
}
public void printArray() {
System.out.println("The data from the array is >> ");
for(int a = 0; a < rows; a++) {
String output = null;
for(int b = 0; b < columns; b++) {
System.out.print(arrayValues[a][b] + " ");
}
System.out.println();
}
}
public String[][] getArrayValues() {
return arrayValues;
}
}