Вы можете использовать инверсию порядка элементов в HTML. Затем, используя order
, как в ответе Michael_B , вы можете использовать flex-direction: row-reverse;
или flex-direction: column-reverse;
в зависимости от вашего макета.
Рабочий пример:
.flex {
display: flex;
flex-direction: row-reverse;
/* Align content at the "reversed" end i.e. beginning */
justify-content: flex-end;
}
/* On hover target its "previous" elements */
.flex-item:hover ~ .flex-item {
background-color: lime;
}
/* styles just for demo */
.flex-item {
background-color: orange;
color: white;
padding: 20px;
font-size: 3rem;
border-radius: 50%;
}
5
4
3
2
1
Это моя версия,
public static String readString(InputStream inputStream) throws IOException {
ByteArrayOutputStream into = new ByteArrayOutputStream();
byte[] buf = new byte[4096];
for (int n; 0 < (n = inputStream.read(buf));) {
into.write(buf, 0, n);
}
into.close();
return new String(into.toByteArray(), "UTF-8"); // Or whatever encoding
}
Ниже кода мог бы помочь Вам.
public String convertBytestoString(InputStream inputStream)
{
int bytes;
byte[] buffer = new byte[1024];
bytes = inputStream.read(buffer);
String stringData = new String(buffer,0,bytes);
return stringData;
}
Если вы хотите сделать это просто и надежно, я предлагаю использовать Apache Jakarta Commons библиотеку ввода-вывода IOUtils.toString (java.io.InputStream, java. lang.String)
метод.
Вы можете использовать BufferedReader
, чтобы прочитать поток в StringBuilder
в цикле, а затем получить полное содержимое из StringBuilder
:
public String convertStreamToString(InputStream is) {
BufferedReader reader = new BufferedReader(new InputStreamReader(is));
StringBuilder sb = new StringBuilder();
String line = null;
try {
while ((line = reader.readLine()) != null) {
sb.append(line + "\n");
}
} catch (IOException e) {
e.printStackTrace();
} finally {
try {
is.close();
} catch (IOException e) {
e.printStackTrace();
}
}
return sb.toString();
}
Полное раскрытие информации : Это решение, которое я нашел на KodeJava.org . Я размещаю его здесь для комментариев и критики.
String text = new Scanner(inputStream).useDelimiter("\\A").next();
Единственная хитрость заключается в том, чтобы запомнить regex
\A
, который соответствует началу ввода. Это фактически указываетScanner
токенизировать весь поток, от начала до (нелогичного) следующего начала...
- из Oracle Blog