0

ファイルを開くには、次のロジックがあります。

私がやりたいことを除いて、ファイルを画面に出力するだけでなく、行を取得してそれを test という文字列に保存します。

誰かがこれで私を助けてくれますか?

// fetch the file
String filename = "companySecret.txt";
String filepath = "C:\\";
String test;

java.io.FileInputStream fileInputStream = new java.io.FileInputStream(filepath + filename);

int i;

while ((i=fileInputStream.read()) != -1) 
{

    System.out.write(i);
}

fileInputStream.close();
4

3 に答える 3

3

BufferedReaderクラスを使用し、ReadLine メソッドを使用してファイルから行を抽出することをお勧めします。

// fetch the file
String filename = "companySecret.txt";
String filepath = "C:\\";
String test;

java.io.FileReader fileInputReader = new java.io.FileReader(filepath + filename);
java.io.BufferedReader input = new java.io.BufferedReader( fileInputReader );


while ((test=input.readLine()) != null) 
{
    // Do something with the line...
}

fileInputStream.close();
于 2013-07-08T17:08:23.990 に答える
2

Apache Commons IO ライブラリを使用します。

String fileContents = FileUtils.readFileToString(file);

http://commons.apache.org/proper/commons-io/javadocs/api-2.4/index.html

于 2013-07-08T17:31:24.977 に答える
0

StringBuilderの代わりに使用String

それから

 StringBuilder test=new StringBuilder();

その後、whileループで

  test.append("your String");

または、次のように好きなように使用できStringます

 String test=new String();

  test +=your_String;

これを試して

   Scanner sc=new Scanner(new FileReader("D:\\Test.txt"));
   StringBuilder test=new StringBuilder();
   String str;
   while (sc.hasNext()){
       str=sc.next();
       System.out.println(str);
       test.append(str);
   }

特定の行を読むには

   import java.io.BufferedReader;
   import java.io.FileReader;
   import java.io.IOException;
   public class Read {
   public static void main(String[] args) throws IOException {
   FileReader fr=new FileReader("D:\\Test.txt");
   BufferedReader br=new BufferedReader(fr);
   StringBuilder test=new StringBuilder();
   String str;
   int count=1;
   while ((str=br.readLine())!=null){
       if(count==1){
           System.out.println(str);
           test.append(str);
       }
         count++;
   }
}
}
于 2013-07-08T17:02:17.807 に答える