javaプログラミングを始めて間もないものなんですが、for文にA~Bの文をいれるとループしなくなります。もしも、A~Bの文がなかったらループするんですが・・
A~Bの文をいれてループさせるにはどのようにすればよいのでしょうか??
String a[] = dir.list(); //dirはディレクトリ
for( int i=0; i<a.length; i++ ) {
File g = new File(dir,a[i]);
if( g.isDirectory() ) {
System.out.println(i + ": " + a[i] + "(ディレクトリ)");
}
if( g.isFile() ) {
System.out.println(i + ": " + a[i] + "(ファイル)");
}
File f =new File(a[i]); //A
InputStreamReader reader = new InputStreamReader (new FileInputStream (f), "jis");
BufferedReader breader = new BufferedReader (reader);
OutputStreamWriter writer = new OutputStreamWriter (new FileOutputStream(t), "sjis");
BufferedWriter bwriter = new BufferedWriter(writer);
int c;
StringBuffer sb = new StringBuffer();
while ((c = breader.read()) != -1){
sb.append((char)c);
}
String mail = sb.toString();
String crlf2 = "";
int pos = mail.indexOf(crlf2) + crlf2.length();
bwriter.write (mail,pos,mail.length() -pos);
bwriter.close();
breader.close(); //B
}
No.4ベストアンサー
- 回答日時:
質問者のdirがカレントディレクトリでなければ
File f =new File(a[i]);
は
File f =new File(dir, a[i]);
ですね。質問者自身、File gに関しては、すでにそうしてます。
list()メソッドより、この場合はlistFiles()メソッドのほうが便利でしょうね。
(そしてもちろん、「ディレクトリなら何もしない」という文は、File fに関して書くべきですね。)
No.3
- 回答日時:
このプログラムは「ディレクトリdirのファイルをコピーするプログラム」という解釈でよろしいですか?
そう解釈してファイルfooをfoo.copyにコピーすると仮定して修正したのが
以下のプログラムですが、このプログラムは私の環境では正しく動いています。
for文も正常にループを行い、以下の出力をします。
解釈に間違っている点などあれば補足してください。
import java.io.File;
import java.io.InputStreamReader;
import java.io.OutputStreamWriter;
import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.BufferedReader;
import java.io.BufferedWriter;
import java.io.IOException;
class loop
{
public static void main(String [] args) throws IOException
{
File dir = new File("."); // カレントディレクトリを指定
String a[] = dir.list();
for( int i=0; i<a.length; i++ ) {
File g = new File(dir,a[i]);
if( g.isDirectory() ) {
System.out.println(i + ": " + a[i] + "(ディレクトリ)");
continue; // ディレクトリはスキップ
}
if( g.isFile() ) {
System.out.println(i + ": " + a[i] + "(ファイル)");
}
File f =new File(a[i]); // A
File t = new File(a[i] + ".copy");
InputStreamReader reader = new InputStreamReader (new FileInputStream (f), "jis");
BufferedReader breader = new BufferedReader (reader);
OutputStreamWriter writer = new OutputStreamWriter (new FileOutputStream(t), "sjis");
BufferedWriter bwriter = new BufferedWriter(writer);
int c;
StringBuffer sb = new StringBuffer();
while ((c = breader.read()) != -1){
sb.append((char)c);
}
String mail = sb.toString();
String crlf2 = "";
int pos = mail.indexOf(crlf2) + crlf2.length();
bwriter.write (mail,pos,mail.length() -pos);
bwriter.close();
breader.close(); // B
}
}
}
No.1
- 回答日時:
「ループしなくなる」とはどういう状態でしょうか?
・forループ文の中が実行されない(forループに入らない)
・forループの中が1回だけ実行され、2回目以降に行かない
・途中で例外が発生するなどして止まる(最後まで実行されない)
・最後まで実行されてるようだが、想定した結果にならない
・その他
また、
>OutputStreamWriter writer = new OutputStreamWriter (new FileOutputStream(t), "sjis");
このtとは何でしょうか?
この回答への補足
>「ループしなくなる」とはどういう状態でしょうか?
「forループの中が1回だけ実行され、2回目以降に行かない」です。
また、「t」はファイルです。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Visual Basic(VBA) ExcelVBAに関する質問 3 2023/02/17 10:47
- Java java 入力 3 4 3 出力 ABC DEFG HIJ このようなプログラムの書き方を教えてくだ 2 2022/07/15 14:18
- Java javaでのプログラム(配列)について質問です. 2 2022/10/14 22:27
- Ruby 【JAVA】数字をひし形に出力するプログラムについて 2 2022/07/11 23:32
- CGI htmlからパラメータで、cgiに渡したい。 1 2023/02/06 16:15
- PHP imageフォルダに、画像をリサイズして保存する時のファイル名を変更したい 1 2023/05/30 11:39
- C言語・C++・C# クラスのメンバ変数を基準に並べ替えをしたい 5 2022/12/25 17:40
- C言語・C++・C# c言語の問題の説明、各所ごとに 5 2023/07/26 11:03
- C言語・C++・C# 大量のデータを読み込んで表示する速度を改善したい 8 2023/05/07 13:29
- Visual Basic(VBA) Excel VBAについて、 フォルダ内のファイルを全て開きたい場合、 FSOを使えば、Dirは使わ 1 2023/01/27 13:18
このQ&Aを見た人はこんなQ&Aも見ています
関連するカテゴリからQ&Aを探す
おすすめ情報
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
Java初心者です。csvファイルの...
-
JavamailでGmailのお気に入りフ...
-
java シンボルが見つかりません
-
URL\正規表現@java
-
JSPからパラメータを取得してサ...
-
Javaの質問です。テキストファ...
-
VBAで配列の計算
-
配列にnullを代入すると、null...
-
ループ処理の際、最後だけ","を...
-
配列をセッションに割り当てた後で
-
1~100までの数字を表示し、か...
-
Log4jで機能毎に別ファイルへ出...
-
Junitテストでvoid戻り値メッソ...
-
シャットダウンフックが呼ばれない
-
EXCEL VBA で、0から?1から?
-
テキストボックスに入力された...
-
べき乗
-
グレイコードの変換
-
C# ListBoxのインデックスの値...
-
javaで質問です。 文字列2023/2...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
yyyymmddからyyyy/mm/d...
-
equalsの逆
-
csv出力について
-
九九を横に表示する。
-
InputStream.read()でタイムア...
-
テキストファイルから空白行をよむ
-
Java int sum = 0は必要ですか?
-
javaのfor文が機能してないみた...
-
BufferedReaderでのエラー
-
Javaの質問です。テキストファ...
-
以下のJAVAプログラムでご質問...
-
Class.forNameでエラーになる
-
ソケットを使ったサーバとクラ...
-
テキストファイルにおいて任意...
-
テキストファイルの任意の文字...
-
JAVAでエラーがでる。
-
Inputstreamについて
-
ObjectInputStreamとStreamCorr...
-
Windowsでの標準入力の終了の仕方
-
[JAVA]エラーが解決できません。
おすすめ情報