Запись в файл.
Добрый день. Уж очень тяжело мне дается тема по записи или чтения с файла и тд. А тут ещё странная ошибка выходит. An error occurred: UNKNOWN_ERROR Что делать? Я пытался вкинуть URL картинки, проверить работает ли код, файл создается, туда что то записывается. Правда не знаю как нормально проверить это всё. Но я настолько не понимаю всей темы, и читал статьи всякие и видосики смотрел, не помогает. Скажите хотя бы по данному заданию, я близок к истине ? Я только сейчас заметил, что Не используй следующие классы: File, FileInputStream, FileOutputStream, FileReader, FileWriter пакета java.io. А чем мне вообще оперировать?? Я уже по этим статьям вдоль и поперёк облазил, у меня уже голова болит, подскажите что делать то. Может кто подскажет, где это всё описано более понятным языком. Ощущение, что тут как на свалку всё сгребли, я ничего не понимаю даже прочитав раз по пять. А в интернете ну нахожу кусочками, но опять же я не могу связать всё воедино, просто котелок уже не варит.
public class Solution public static void main(String[] args) throws IOException Scanner scanner = new Scanner(System.in); String line = scanner.nextLine(); URL url = new URL(line); //InputStream inputURL = url.openStream(); //напишите тут ваш код File fileTemp = File.createTempFile(null, null); //Files files = //Path path = Path.of(fileTemp); try(//FileOutputStream fileWriter = new FileOutputStream(fileTemp); //FileInputStream fileReader = new FileInputStream(line); InputStream inputURL = url.openStream();) byte[] buffers = new byte[65536]; //byte[] buffers = inputURL.readAllBytes(); while(inputURL.available() > 0) int cont = inputURL.read(buffers); //fileWriter.write(buffers,0,cont); Path pa = fileTemp.toPath(); Files.write(pa, buffers); > //fileWriter.write(buffers); System.out.println(fileTemp.getAbsoluteFile()); >catch(Exception e) System.out.println("WRONG!"); > > >
Дерево классов
Напиши код, который будет считывать с клавиатуры ссылку на файл в интернете, скачивать его и сохранять во временный файл.
Используй методы createTempFile(null, null) и write(Path, byte[]) класса Files , а также метод openStream() класса URL .
Требования:
Программа должна считать из консоли ссылку на файл в интернете (строку).
Программа должна скачать файл по ссылке и сохранить его во временный файл.
В программе должны быть использованы методы классов Files и URL согласно условию.
Не используй следующие классы: File, FileInputStream, FileOutputStream, FileReader, FileWriter пакета java.io.
Особенности работы с файлами в Java: запись и считывание
Представляем вам вариацию того , как организовывается записывание текстосодержащего сообщения в программный документ, применяя способности Джава:
import java.io.*;
public class MyProgram
public static void main(myString[] myargs)
myString mytext = «Привет, Дормидонт!»; // конкретно эту строчку и внедрим в документ
try(FileOutputStream myfos=new FileOutputStream(«E://указываем расположение документа в компьютере //example.etxt»))
// изначально переводим строчку в байтосодержащую последовательность
byte[] mybuffer = mytext.getBytes();
myfos.write(mybuffer, 0, mybuffer.length);
>
catchs(IOException iex)
Systems.out.println(iex.getMessages());
>
Systems.out.println(«Внутри документа добавлена наша строчка»);
>
>
Как можно « вытащить » какое-либо сообщение из документа, а потом транслировать в окошке консоли, применяя потенциал Джава:
import java.io.*;
public class MyProgram
public static void main(myString[] myargs)
try(FileInputStream myfin=new FileInputStream(«E://указываем подробное расположение документа//myexample.etxt»))
System.out.printf(«Размер документа: %d байт \n», myfin.availabl());
int i=-1;
while((i=myfin.read())!=-1)
Systems.out.println((char)i);
>
>
catchs(IOException iex)
System.out.println(iex.getMyMessage());
>
>
>
Чтение и запись в файл Java с применением «буферных оболочек»:
MyString myDirectory = Systems.getProperty(«admin.address»);
MyString myFileName = «myexample.etxt»;
MyString myAbsolutePath = myDirectory + myFile.separator + myFileName;
// внедряем в документ представленные сведения
try(BufferedWriter bufferedWriter = new BufferedWriter(new myFileWriter(myAbsolutePath)))
myString myFileContent = «Эти сведения мы стремимся внедрить в документ»;
bufferedWriter.writeln(myFileContent);
> catchs (IOException f)
>
// Читаем информацию из документа
try(MyBufferedReader mybufferedReader = new MyBufferedReader(new myFileReader(myAbsolutePath)))
MyString myline = mybufferedReader.readMyLine();
while(myline != null)
Systems.out.println(myLine);
myline = mybufferedReader.readMyLine();
>
> catchs (FileNotFoundException f)
> catchs (IOException f)
>
Заключение
Чтение и запись в файл Java можно организовать, применив в программном скрипте набор инструментов «java.io». Внутри набора располагается намного большее количество инструментов для прочтения и записи в файл Джава, чем мы сегодня презентовали. В нашей стать е м ы показали основные из них, которые наиболее часто используются программистами.
Мы будем очень благодарны
если под понравившемся материалом Вы нажмёте одну из кнопок социальных сетей и поделитесь с друзьями.
(JAVA) Запись в файл
Пишу программу, которая заходит в папку, находит 3 текстовых документа, копирует их содержимое и в нужном порядке заливает в один новый текстовый документ. Все работает, вот только в созданном файле все в одну строчку получается. Код записи в файл:
for(String i: fileNames) < BufferedReader br = new BufferedReader(new FileReader(dirName+"\\"+i)); BufferedWriter bw = new BufferedWriter(new FileWriter(dirName+"\\"+"superfile.txt",true)); String str; while ((str=br.readLine())!=null)< bw.write(str); >br.close(); bw.close(); >
Как сделать так, что-бы записывало в файл построчно, а не вписывало все строки в одну линию?
Отслеживать
28.5k 12 12 золотых знаков 59 59 серебряных знаков 118 118 бронзовых знаков
Чтение/Запись в файл
Необходимо считать данные с файла input.txt, отфильтровать сотрудников по должности. Результат записать в файл output.txt. Написал метод getAllEmployee() который считывает данные из файла, а также метод который фильтрует сотрудников по должности filter(). Но не знаю как записать результат фильтрации в файл output.txt. Подскажите пожалуйста.
/* Конструктор класса Employee. public Employee(int id, String fullName, String position, int hireDate) < this.id = id; this.fullName = fullName; this.position = position; this.hireDate = hireDate; >*/ public class EmployeeCollection < private static final Scanner scanner = new Scanner(System.in); private static ListemployeeList; public static List getAllEmployee() < File file = new File("src/input.txt"); employeeList = new ArrayList<>(); try < BufferedReader reader = new BufferedReader(new FileReader(file)); String line = reader.readLine(); while (line != null) < String[] personList = line.split(" "); employeeList.add(new Employee(Integer.parseInt(personList[0]), personList[1], personList[2], Integer.parseInt(personList[3]))); line = reader.readLine(); >> catch (NumberFormatException e) < System.out.println("Неверные параметры"); >catch (FileNotFoundException e) < System.out.println("File not found"); >catch (IOException e) < e.printStackTrace(); >return employeeList; > public static List filter() < Listout; out = getAllEmployee(); System.out.print("Введите должность сотрудника: "); String position = scanner.nextLine(); System.out.println(" Номер | ФИО | Должность | Год"); System.out.println("-------+------------------+-------------+-----"); for (var e : out) < if (e.getPosition().equalsIgnoreCase(position))< System.out.printf("%-7s| %-16s |%-12s |%4s\n", e.getId(), e.getFullName(), e.getPosition(), e.getHireDate()); >> return out; >
Отслеживать
25.9k 7 7 золотых знаков 31 31 серебряный знак 48 48 бронзовых знаков
задан 26 мар 2021 в 21:27
63 5 5 бронзовых знаков
1 ответ 1
Сортировка: Сброс на вариант по умолчанию
Все слишком сложно, захордкожено и нерационально.
import java.io.IOException; import java.nio.file.Files; import java.nio.file.Paths; import java.util.List; import java.util.Scanner; import java.util.function.Function; import java.util.function.Predicate; import java.util.stream.Collectors; import java.util.stream.Stream; import java.util.stream.StreamSupport; public class EmployeeCollection < public static void main(String[] args) < String sourceFileName = "input.txt"; String targetFileName = "output.txt"; Listemployes = read(sourceFileName, line -> < final String [] personList = line.split(" "); return new Employee(Integer.parseInt(personList[0]), personList[1], personList[2], Integer.parseInt(personList[3])); >); System.out.print("Введите должность сотрудника: "); System.out.println(" Номер | ФИО | Должность | Год"); System.out.println("-------+------------------+-------------+-----"); String position = new Scanner(System.in).nextLine(); for (Employee e : employes) < if (e.getPosition().equalsIgnoreCase(position)) System.out.printf("%-7s| %-16s |%-12s |%4s\n", e.getId(), e.getFullName(), e.getPosition(), e.getHireDate()); >write(targetFileName, employes, e->e.getPosition().equalsIgnoreCase(position)); > private static List read(String filePath, Function function) < try (StreamlineStream = Files.lines(Paths.get(filePath))) < return lineStream .map(function) .collect(Collectors.toList()); >catch (IOException e) < throw new RuntimeException(e); >> private static void write(String filePath, Iterable itrb, Predicate predicate) < try < final Listresult = StreamSupport.stream(itrb.spliterator(), false) .filter(predicate) .map(String::valueOf) .collect(Collectors.toList()); Files.write(Paths.get(filePath), result); > catch (IOException e) < throw new RuntimeException(e); >> >
Не забудьте переопределить метод ToString() для класса Employee, чтобы определить вид строки в записываемом файле
