Как посимвольно считать строку в java
Для того, чтобы считать строку посимвольно в Java , можно использовать метод toCharArray() класса String , который возвращает массив символов, представляющих строку. Затем можно перебирать элементы массива с помощью цикла for и обрабатывать их по мере необходимости.
Например, следующий код считывает строку с клавиатуры и выводит ее посимвольно в консоль:
import java.util.Scanner; public class Main public static void main(String[] args) Scanner scanner = new Scanner(System.in); System.out.print("Введите строку: "); String str = scanner.nextLine(); char[] charArray = str.toCharArray(); for (char c : charArray) System.out.println(c); > scanner.close(); > >
- В этом примере сначала создается объект Scanner для считывания ввода с клавиатуры.
- Затем пользователю предлагается ввести строку, которая сохраняется в переменной str .
- С помощью метода toCharArray() создается массив символов charArray , который затем перебирается с помощью цикла for-each .
- Как только все символы строки выведены, сканер закрывается с помощью метода close() .
Как посимвольно пройтись по строке java
Для того, чтобы пройтись по строке посимвольно в Java , можно воспользоваться методом toCharArray() класса String . Этот метод возвращает массив символов, представляющий заданную строку.
String str = "Hello, world!"; char[] charArray = str.toCharArray(); for (int i = 0; i charArray.length; i++) char c = charArray[i]; System.out.println(c); >
В этом примере мы создаем строку «Hello, world!» и вызываем метод toCharArray() , чтобы получить массив символов, представляющий эту строку. Затем мы проходим по каждому элементу массива и выводим его на экран:
Посимвольное чтение из файла
Но это же полное уродство. Есть ли способ просто прочитать символ? Без всяких переводов строки в символьный массив.
Посимвольное чтение из файла
Всем добрый вечер (ночь)! Так сложилась ситуация что нужно мне посимвольно считать текст из файла.
Посимвольное чтение файла
Всем добрый день! давно не писал на Borland с++ и выяснилось что ни чего не помню. Задался.
Посимвольное чтение файла
Доброе время суток! Такая проблема встала передо мной: Есть файл вида: 0012345 01123412345678.
Посимвольное чтение текста из файла
Здравствуйте! Вот код, считывающий текст из файла и отображающий его в виде дерева void.
FileReader fr = new FileReader(new File("test.txt")); int ch; while ((ch = fr.read()) != -1) { System.out.print((char)ch); }
ещё как вариант, тут проблем с кодировкой нет, если знаешь какая нужна
возвращать можно и массив символов
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45
/* * @(#)FileLoad.java 0.1 22/03/2010 */ import java.io.*; /** * Methods for read file * * @author TanT * @version 0.1 22/03/2010 */ public class FileLoad { /** * Read file and return as string * * @param encoding the code file * @param file the file to reading * @throws java.io.IOException if error open file * @return file to string */ public static String loadFileAsString(File file, String encoding) throws IOException { InputStreamReader f= (encoding==null ? new FileReader(file):new InputStreamReader( new FileInputStream(file),encoding)); StringBuffer sb= new StringBuffer(); try { char[] buf= new char[1000]; int len; while ((len=f.read(buf,0,buf.length))>=0) { sb.append(buf,0,len); } return sb.toString(); }catch(FileNotFoundException ex) { System.out.println("FileNotFoundException: " + file + " exc: " + ex); } finally { try {f.close();} catch (Exception e) {}; } return null; } }
Посимвольно считать строку java
Запись текста через буфер и BufferedWriter
Класс BufferedWriter записывает текст в поток, предварительно буферизируя записываемые символы, тем самым снижая количество обращений к физическому носителю для записи данных.
Класс BufferedWriter имеет следующие конструкторы:
BufferedWriter(Writer out) BufferedWriter(Writer out, int sz)
В качестве параметра он принимает поток вывода, в который надо осуществить запись. Второй параметр указывает на размер буфера.
Например, осуществим запись в файл:
import java.io.*; public class Program < public static void main(String[] args) < try(BufferedWriter bw = new BufferedWriter(new FileWriter("notes4.txt"))) < String text = "Hello World!\nHey! Teachers! Leave the kids alone."; bw.write(text); >catch(IOException ex) < System.out.println(ex.getMessage()); >> >
Чтение текста и BufferedReader
Класс BufferedReader считывает текст из символьного потока ввода, буферизируя прочитанные символы. Использование буфера призвано увеличить производительность чтения данных из потока.
Класс BufferedReader имеет следующие конструкторы:
BufferedReader(Reader in) BufferedReader(Reader in, int sz)
Второй конструктор, кроме потока ввода, из которого производится чтение, также определяет размер буфера, в который будут считываться символы.
Так как BufferedReader наследуется от класса Reader , то он может использовать все те методы для чтения из потока, которые определены в Reader. И также BufferedReader определяет свой собственный метод readLine() , который позволяет считывать из потока построчно.
Рассмотрим применение BufferedReader:
import java.io.*; public class Program < public static void main(String[] args) < try(BufferedReader br = new BufferedReader (new FileReader("notes4.txt"))) < // чтение посимвольно int c; while((c=br.read())!=-1)< System.out.print((char)c); >> catch(IOException ex) < System.out.println(ex.getMessage()); >> >
Также можно считать текст построчно:
try(BufferedReader br = new BufferedReader(new FileReader(«notes4.txt»))) < //чтение построчно String s; while((s=br.readLine())!=null)< System.out.println(s); >> catch(IOException ex)
Считывание с консоли в файл
Соединим оба класса BufferedReader и BufferedWriter для считывания с консоли в файл. Для этого определим следующий код программы:
import java.io.*; public class Program < public static void main(String[] args) < try(BufferedReader br = new BufferedReader (new InputStreamReader(System.in)); BufferedWriter bw = new BufferedWriter(new FileWriter("notes5.txt"))) < // чтение построчно String text; while(!(text=br.readLine()).equals("ESC"))< bw.write(text + "\n"); bw.flush(); >> catch(IOException ex) < System.out.println(ex.getMessage()); >> >
Здесь объект BufferedReader устанавливается для чтения с консоли с помощью объекта new InputStreamReader(System.in) . В цикле while считывается введенный текст. И пока пользователь не введет строку «ESC», объект BufferedWriter будет записывать текст файл.