質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.48%
Java

Javaは、1995年にサン・マイクロシステムズが開発したプログラミング言語です。表記法はC言語に似ていますが、既存のプログラミング言語の短所を踏まえていちから設計されており、最初からオブジェクト指向性を備えてデザインされています。セキュリティ面が強力であることや、ネットワーク環境での利用に向いていることが特徴です。Javaで作られたソフトウェアは基本的にいかなるプラットフォームでも作動します。

Q&A

解決済

2回答

2959閲覧

ファイルパスの受け渡し

masaomi_ken

総合スコア20

Java

Javaは、1995年にサン・マイクロシステムズが開発したプログラミング言語です。表記法はC言語に似ていますが、既存のプログラミング言語の短所を踏まえていちから設計されており、最初からオブジェクト指向性を備えてデザインされています。セキュリティ面が強力であることや、ネットワーク環境での利用に向いていることが特徴です。Javaで作られたソフトウェアは基本的にいかなるプラットフォームでも作動します。

0グッド

0クリップ

投稿2016/01/27 09:32

編集2016/01/27 09:35

ユーザーから入力させたファイルパスを読み込ませて
配列に入れるプログラムを作っています。

こちらで指定したファイルを読み込ませて配列に入れるまでは
出来たのですが、入力させたファイルパスの値を

File file = new File("○○○");

○の部分に受け渡すことは可能なのでしょうか?

入力されたパスがint型でファイルを読み込むところはString型
でないとダメでどうしたらいいのか困っています。

import java.io.BufferedReader;
import java.io.File;
import java.io.FileNotFoundException;
import java.io.FileReader;
import java.io.IOException;
import java.io.InputStreamReader;

public class Test {

public static void main(String[] args) {

String[] strarray = new String[50000];

int i = 0;

try{

System.out.println("ファイルパスを入力してください。"); BufferedReader br = new BufferedReader(new InputStreamReader(System.in)); String str = br.readLine(); int pass = Integer.parseInt(str); File file = new File(pass); BufferedReader br2 = new BufferedReader(new FileReader(file)); String str1= null; i=0; while((str1 = br2.readLine()) != null){ System.out.println(str1); strarray[i]=str1; i = i +1; } br2.close();

}catch(FileNotFoundException e){
System.out.println(e);
}catch(IOException e){
System.out.println(e);
}
}

}

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答2

0

数字で入力された数字の名前がついたFileオブジェクトを生成するということでしょうか?
intを文字列に変える方法はいくつかあります。

  1. staticメソッドInteger.toString()に渡す
  2. staticメソッドString.valueOf()に渡す
  3. "" + (int型の変数またはリテラル)と書く(あまりおすすめしません)

しかし、そもそもこのFileに渡す数値自体、もともとStringだったものをparseIntで数値化しているようなので、数値化する前の文字列を渡せばいいのではないでしょうか?

投稿2016/01/27 09:37

swordone

総合スコア20651

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

masaomi_ken

2016/01/27 09:46

parseIntなどの詳しい意味がよく分からないまま作ったので自分の中でグチャグチャに 考えてしまっていました。細かい説明ありがたいです!
guest

0

ベストアンサー

せっかく入力値を文字列の str に代入してますのに・・・
String str = br.readLine();

その直後で、intに変換してしまってますね。
int pass = Integer.parseInt(str);

最初から、
String pass = br.readLine();

として良いのではないでしょうか。
passの文字列の検証はちょっと置いておきつつ、その後に new File(pass) で一度動作確認してみてはいかがでしょうか。

投稿2016/01/27 09:36

Toyoshima

総合スコア422

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

masaomi_ken

2016/01/27 09:48

入力されたものをString型に入れてるのにわざわざint型に変換していました...... 自身がよく読まないで勢いで書く癖があるので一行一行理解していこうと思います。 int passの行を消して動かしてみたら無事できました。ありがとうございます
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.48%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問