0

如何将文本文件中的字符串分配给 Java 的整数数组?我已将整数数组保存到文本文件中,但现在如何在不进行任何修改的情况下从文本文件中检索所有整数数组?我希望检索的整数数组与将其存储到文本文件之前相同。以下是我的部分代码:

BufferedWriter f1 = new BufferedWriter(new InputStreamReader(new FileInputStream("Input.txt")));

int a[ ] = yes(test, test.length); //go to yes method,return value to array  
for(int i = 0; i < a.length; i++)  
{  
    f1.write(a[i]);  
}  
    f1.close( );  

BufferedReader f2 = new BufferedReader(new InputStreamReader(new FileInputStream("Input.txt")));  
String src;  
while((src = f2.readLine( )) != null)  
{  
    String[ ] s = src;  
    int a[ ] = Integer.parseInt(s);//same with before it saved  
    ... ...  
}  

(发现不兼容的类型)
整数数组(a[ ]) 保存并从文本文件中检索后如何保留其原创性?谢谢!

4

3 回答 3

4

这看起来像家庭作业。无论如何,这是我的测试代码:

// Write integers to a file, each on a different line
BufferedWriter f1 = new BufferedWriter( new FileWriter( new File( "Input.txt" ) ) );
int a[] = new int[]{ 17 , 42 , 37 };
for ( int i = 0 ; i < a.length ; i++ ) {
  f1.write( String.valueOf( a[ i ] ) + "\r\n" );
}
f1.close();

// Read integers from a file, assume each value on a different line
final BufferedReader bufferedReader = new BufferedReader( new FileReader( new File( "Input.txt" ) ) );
String line;
final List< Integer > values = new ArrayList< Integer >();
while ( ( line = bufferedReader.readLine() ) != null ) {
  values.add( Integer.valueOf( line ) );
}
bufferedReader.close();

// Convert List elements to array
final int[] valueArray = new int[ values.size() ];
int counter = 0;
for ( int value : values ) {
  valueArray[ counter ] = value;
  counter++;
}

// Print array values
for ( int value : valueArray ) {
  System.out.println( "value: |" + value + "|" );
}

输出如下

value: |17|
value: |42|
value: |37|
于 2009-03-18T08:33:20.050 回答
0

您需要以某种方式分隔整数。最简单的解决方案是将每一个都写在单独的行中。或者使用逗号分隔的列表,然后使用 String.split(",")

于 2009-03-18T08:21:43.650 回答
0

您编写字符的方式是完全错误的,您正在编写 int 的字符表示。在内部这被写成一个字符。你需要像这样写你的整数。

for(int i = 0; i < a.length; i++)
{
   String value = String.valueOf(a[i]);
   f1.println(value);
}

这应该与您现在阅读整数的方式兼容。

于 2009-03-18T08:24:38.683 回答