Практические задания по вводу-выводу в Java
Задание 1: Вывод строк в обратном порядке
import java.util.Scanner;
public class ReverseStrings {
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
String[] strings = new String[3];
// Ввод строк
for (int i = 0; i < 3; i++) {
System.out.print("Введите строку " + (i + 1) + ": ");
strings[i] = scanner.nextLine();
}
// Вывод в обратном порядке
System.out.println("Строки в обратном порядке:");
for (int i = 2; i >= 0; i--) {
System.out.println(strings[i]);
}
scanner.close();
}
}
Задание 2: Чтение слова из 5 букв с помощью System.in
import java.io.IOException;
public class ReadFiveLetterWord {
public static void main(String[] args) throws IOException {
byte[] buffer = new byte[5];
System.out.print("Введите слово из 5 букв: ");
System.in.read(buffer, 0, 5);
String word = new String(buffer);
System.out.println("Вы ввели: " + word);
}
}
Задание 3: Чтение слова до пробела (макс. 10 символов) с помощью System.in
import java.io.IOException;
public class ReadWordUntilSpace {
public static void main(String[] args) throws IOException {
byte[] buffer = new byte[10];
System.out.print("Введите слово (до 10 символов): ");
int bytesRead = System.in.read(buffer);
String word = new String(buffer, 0, bytesRead).split("\\s")[0];
System.out.println("Вы ввели: " + word);
}
}
Задание 4: Чтение из файлов и запись буквы
import java.io.*;
import java.util.Scanner;
public class FileChainReading {
public static void main(String[] args) throws IOException {
// Чтение имени второго файла из первого файла
FileInputStream fis1 = new FileInputStream("file1.txt");
Scanner scanner = new Scanner(fis1);
String secondFileName = scanner.nextLine();
scanner.close();
// Чтение имени третьего файла из второго файла
FileInputStream fis2 = new FileInputStream(secondFileName);
scanner = new Scanner(fis2);
String thirdFileName = scanner.nextLine();
scanner.close();
// Чтение буквы от пользователя
System.out.print("Введите букву: ");
int letter = System.in.read();
// Запись буквы в третий файл
FileOutputStream fos = new FileOutputStream(thirdFileName);
fos.write(letter);
fos.close();
System.out.println("Буква успешно записана в файл " + thirdFileName);
}
}
Задание 5: Чтение целого числа до первой нецифры
import java.io.IOException;
public class ReadIntegerUntilNonDigit {
public static void main(String[] args) throws IOException {
System.out.print("Введите число (до 7 символов): ");
StringBuilder number = new StringBuilder();
for (int i = 0; i < 7; i++) {
int ch = System.in.read();
if (ch >= '0' && ch <= '9') {
number.append((char) ch);
} else {
break;
}
}
System.out.println("Считанное число: " + number);
}
}
Задание 6: Чтение дробного числа
import java.io.IOException;
public class ReadFloatNumber {
public static void main(String[] args) throws IOException {
System.out.print("Введите дробное число: ");
StringBuilder number = new StringBuilder();
boolean dotFound = false;
for (int i = 0; i < 10; i++) {
int ch = System.in.read();
if ((ch >= '0' && ch <= '9') || (ch == '.' && !dotFound)) {
number.append((char) ch);
if (ch == '.') {
dotFound = true;
}
} else {
break;
}
}
System.out.println("Считанное число: " + number);
}
}
Задание 7: Вывод строк с восклицательным знаком в stderr
import java.util.Scanner;
public class ExclamationToStderr {
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
for (int i = 0; i < 10; i++) {
System.out.print("Введите строку " + (i + 1) + ": ");
String line = scanner.nextLine();
if (line.contains("!")) {
System.err.println(line);
}
}
scanner.close();
}
}
Задание 8: Вывод строк в stdout и stderr в зависимости от длины
import java.util.Scanner;
public class StringLengthSorting {
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
String[] lines = new String[10];
// Ввод строк
for (int i = 0; i < 10; i++) {
System.out.print("Введите строку " + (i + 1) + ": ");
lines[i] = scanner.nextLine();
}
System.out.print("Введите максимальную длину (max): ");
int max = scanner.nextInt();
// Вывод строк
for (String line : lines) {
if (line.length() < max) {
System.out.println(line);
} else {
System.err.println(line.substring(0, max));
}
}
scanner.close();
}
}
Эти задания охватывают различные аспекты ввода-вывода в Java, включая: - Использование Scanner для чтения ввода пользователя - Прямое использование System.in для чтения байтов - Работу с файлами (FileInputStream, FileOutputStream) - Обработку строк и чисел - Использование System.out и System.err для вывода
При выполнении этих заданий важно обратить внимание на обработку исключений и закрытие ресурсов (Scanner, потоки ввода-вывода) после использования.
пример
https://gitlab.com/synergy9980417/tema1_urok1_9