Генератор пользовательских идентификаторов и сохранение в файл - PullRequest
0 голосов
/ 03 марта 2019

У меня проблемы с использованием BufferedReader.Я смог сделать это на Python, но Java меня очень смущает.Кстати, это активность на Android Studio.Конечный план состоит в том, чтобы вычислить длину по заданным значениям и отслеживать длину по мере использования броска, однако я не уверен, существует ли более эффективный способ сохранения данных, кроме использования текстовых файлов.Если да, скажите, пожалуйста.

Вещи, которые у меня есть:

rollID.txt, rollType.txt, rollWidth.txt, rollWeight.txt, rollLenght.txt и, очевидно, addRoll.java

Логика:

  1. Когда открыта операция добавления роллов, она должна искать в rollID.txt последний номер ролла ((0001, 0002, ...., 0124 ... и т. Д.)...) и добавьте еще 1 и отобразите его в TextView вверху (в настоящее время отмечено 0001).Если файл пуст, он должен начинаться с «0001».

  2. Когда Roll добавлен официально с помощью кнопки добавления, он должен сохранить сгенерированный Roll ID на следующей строке rollID.txt,Следует сохранить параметр 309 или 321 в rollType.txt и из счетчика, сохранить в rollWidth.txt и, наконец, сохранить вес в rollWeight.txt.Они должны быть на соответствующих строках в каждом текстовом файле.

  3. Используя данные, предоставленные пользователем, он вычислит длину рулона, используя ширину, толщину, плотность и вес, и сохранит это.значение для rollLength.txt

    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_add_roll);
        TextView rollId = findViewById(R.id.rollid);
    }
    

Я прошу прощения, если это очень запутанно, но я с удовольствием отвечу на любые ваши вопросы о приложении.

ЭтоВот как выглядит Активность:

IMG:

1 Ответ

0 голосов
/ 03 марта 2019

Это будет программа на основе Java-консоли, в которой Вы получите следующий номер ролла и, основываясь на других входных данных, будут соответственно записаны в файлы. Дайте мне знать, если это то, что вы хотели.PS это работает для Java 7 и выше

import java.io.File;
import java.io.IOException;
import java.nio.charset.StandardCharsets;
import java.nio.file.Files;
import java.nio.file.Path;
import java.nio.file.Paths;
import java.util.List;
import java.util.Scanner;

public class Test {

    public static int lineNumber = 0;
    public static void main(String[] args) {
        try {
            File rootFolder = new File("C:\\Test");//Location for all Text files

            //Get nextId (default 001)
            int rolNumber = getDataFromRollIDTxt();
            lineNumber = rolNumber-1;
            String rollNumber = String.format("%04d",rolNumber); //Adding leading zeros
            System.out.println("Next generated RollNumber %03d :: "+rollNumber);

            Scanner scanner = new Scanner(System.in);

            //For RollType
            System.out.print("Enter your RollType (309/321):: ");       
            String type = scanner.nextLine();
            System.out.println(type);

            //For RollWidth
            System.out.print("Enter your rollWidth:: ");
            String width = scanner.nextLine();
            System.out.println(width);

            //For RollWeight
            System.out.print("Enter your rollWeight:: ");
            String weight = scanner.nextLine();
            System.out.println(weight);

            //Saving Data to respective files at corresponding lineNumbers
            for (File file : rootFolder.listFiles()) {
                Path path = Paths.get(file.getAbsolutePath());
                List<String> lines = Files.readAllLines(path, StandardCharsets.UTF_8);
                if(file.getAbsolutePath().contains("ID")) {
                    lines.add(lineNumber, rollNumber);
                } else if(file.getAbsolutePath().contains("Weight")) {
                    lines.add(lineNumber, weight);
                } else if(file.getAbsolutePath().contains("Type")) {
                    lines.add(lineNumber, type);
                } else if(file.getAbsolutePath().contains("Width")) {
                    lines.add(lineNumber, width);
                } else if(file.getAbsolutePath().contains("Height")) {
                    long height = Integer.parseInt(width)/Integer.parseInt(weight)+Integer.parseInt(type); //Random calcultaions
                    lines.add(lineNumber, height+"");
                }
                Files.write(path, lines, StandardCharsets.UTF_8);
            }           

        } catch (IOException e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        }
    }

    public static Integer getDataFromRollIDTxt() throws IOException {
        String text = ""; 
        try { 
            text = new String(Files.readAllBytes(Paths.get("C:\\Test\\rollId.txt")));
            if(!text.isEmpty()) {
                String[] arr = text.split("[\\r\\n]+"); //To get all rollnumbers in Array           
                Integer lastId = Integer.parseInt(arr[arr.length-1]);
                return ++lastId;
            }
            else {
                return 1;
            }           
        } 
        catch (IOException e) { 
            e.printStackTrace(); 
            throw e;
        }
    }
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...