[英]Java - Reading .txt file and storing as Array
我需要以下代碼的幫助-
該程序應該讀取一個整數列表的文本文件,根據用戶的選擇根據升序或降序對它們進行排序,然后將其導出為文本文件。 當我嘗試在第一種方法中使用java讀取文件之前,將整數作為數組包含在代碼中時,代碼可以正常工作。 之后,沒有打印任何內容以匹配用戶輸入。
這是我目前所擁有的:
import java.io.File;
import java.io.FileNotFoundException;
import java.util.Arrays;
import java.util.Scanner;
public class BubbleSorting {
public static int[] readFiles(String file) throws FileNotFoundException{
File f= new File("input.txt");
Scanner x= new Scanner(f);
int [] intArray= new int[100];
Scanner s1= new Scanner(f);
for (int i=0; i< intArray.length; i++)
intArray[i] = s1.nextInt();
return intArray;
}
public static void main (String[] args) throws FileNotFoundException {
int[] intArray= readFiles("input.txt");
System.out.println("Select from the following options:\n (A) Sort integers by ascending order \n (B) Sort by descending order "
+ "\n (C) Both. \n Please input your selection below.");
Scanner a = new Scanner(System.in);
String choice = a.nextLine();
if (choice.equals("A") || choice.equals("a")) {
bubbleSortInASC(intArray);
System.out.println("You have chosen to sort in ascending order:");
//print array after sorting using bubble sort algorithm
for(int i=0; i < intArray.length; i++){
System.out.println(intArray[i]);}}
else if (choice.equals("B") || choice.equals("b")) {
//sort an array in descending order using bubble sort algorithm
bubbleSortDSC(intArray);
System.out.println("You have chosen to sort in descending order:");
//print array after sorting using bubble sort algorithm
for(int i=0; i < intArray.length; i++){
System.out.println(intArray[i] + " ");
}}
else if (choice.equals("C") || choice.equals("c")) {
System.out.println("You have chosen to sort in both ascending and descending order.");
bubbleSortInASC(intArray);
System.out.println("In ascending order: ");
for(int i=0; i < intArray.length; i++){
System.out.println(intArray[i]+ " "); }
bubbleSortDSC(intArray);
System.out.println("\nIn descending order: ");
for(int i=0; i < intArray.length; i++){
System.out.println(intArray[i]+ " " ); }
}
else {
System.out.println("That was not one of the options provided. Please try again.");
}
}
public static void bubbleSortDSC(int intArray[]) {
int n = intArray.length;
int temp = 0;
for(int i=0; i < n; i++){
for(int j=1; j < (n-i); j++){
if(intArray[j-1] < intArray[j]){
//swap the elements!
temp = intArray[j-1];
intArray[j-1] = intArray[j];
intArray[j] = temp;}
}}
}
public static void bubbleSortInASC(int numbers[])
{
int temp;
for(int i = 0; i < numbers.length; i++)
{
for(int j = 1; j < (numbers.length -i); j++)
{
//if numbers[j-1] > numbers[j], swap the elements
if(numbers[j-1] > numbers[j])
{
temp = numbers[j-1];
numbers[j-1]=numbers[j];
numbers[j]=temp;
}
}
}}
}
任何幫助將非常感激。
將readFiles method
替換為
public static int[] readFiles(String file) throws FileNotFoundException{
File f= new File("input.txt");
//Scanner x= new Scanner(f); //you havent used it
int [] intArray= new int[10];
Scanner s1= new Scanner(f);
for (int i=0; i< intArray.length; i++)
intArray[i] = s1.nextInt();
s1.close();//should close inputstream after use it
return intArray;
}
並確保input.txt
在當前目錄下。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.