「流式java方法」java 流式
本篇文章给大家谈谈流式java方法,以及java 流式对应的知识点,希望对各位有所帮助,不要忘了收藏本站喔。
本文目录一览:
- 1、一道关于流式布局管理器的JAVA问题
- 2、Java中的I/O流的基本知识
- 3、Java 的流式中流式是什么意思
- 4、如何实现java 流式文件上传
- 5、java 流式I/O
- 6、java 边界布局 流式布局是什么
一道关于流式布局管理器的JAVA问题
你为什么非用流失布局管理器,JFrame的默认容器可以通过getContentPane()方法获取,通过paint方法重绘该容器,如何再添加其他组件呢。JFrame的默认管理器为BorderLayout布局管理器。
我的思路是:可以在JPanel绘图,然后把JPanel容器添加到JFrame容器面板中。代码如下。
public class first4 extends JFrame{
public first4() {
JPanel p1 = new firstPanel();
JPanel p2 = new JPanel();
JLabel label = new JLabel("哈哈");
JButton button = new JButton("提交");
p2.add(label);
p2.add(button);
this.getContentPane().add(p1);
this.getContentPane().add(p2,BorderLayout.SOUTH);
this.setSize(800,400);
this.setVisible(true);
this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
}
public static void main(String[] args) {
new first4();
}
}
class firstPanel extends JPanel{
String s = "欢迎进入";
public void paint(Graphics g) {
g.setColor(new Color(130, 135, 205));
g.drawLine(200, 160, 340, 160);
g.drawLine(420, 160, 560, 160);
g.drawLine(250, 200, 246, 218);
g.drawLine(270, 200, 260, 240);
g.drawLine(510, 200, 514, 218);
g.drawLine(490, 200, 500, 240);
g.drawRoundRect(345, 220, 70, 50, 30, 20);
g.setColor(Color.RED);
g.setFont(new Font("Dialog", Font.ITALIC + Font.BOLD, 40));
g.drawString(s, 300, 60);
g.setColor(Color.RED);
}
}
Java中的I/O流的基本知识
1、与外部设备和其它计算机进行交流的输入输出操作,尤其是对磁盘的文件操作,是计算机程序重要的功能,任何计算机语言都必须对输入输出提供支持。Java也不例外,它的输入输出类库中包含了丰富的系统工具,这些类被放在java.io包中。在该类库中,除了定义文件输入输出操作外,还定义了许多用来和其他外设进行信息交换的类。
2、流(Stream)指的是在计算机的输入与输出之间运动的数据序列:输入流代表从外设流入计算机的数据序列;输出流代表从计算机流向外设的数据序列。
流式输入输出是一种很常见的输入输出方式,它最大的特点是数据的获取和发送均沿数据序列顺序进行:每一个数据都必须等待排在它前面的数据读入或输出之后才能被读写,每次读写操作处理的都是序列中剩余的未读写数据中的第一个,而不能够随意选择输入输出的位置。磁带机是实现流式输入输出的典型设备
3、InputStream和OutputStream是java.io包中的两个抽象类,他们分别是其他所有输入、输出流类的父类。其他所有输入流类都是继承了InputStream的基本输入功能并根据自身属性对这些功能加以扩充;同样,其他所有输出流类也都是继承了OutputStream类的基本输出功能并加以扩展的
4、File类是IO包中惟一代表磁盘文件本身的对象,File对象定义了一些与平台无关的方法来操纵文件
创建File类对象时需指明它所对应的文件或目录名。File类共提供了4个不同的构造方法,以不同的参数形式灵活地接收文件和目录名信息
5、FileReader和FileWrite类分别继承自Reader类和Writer类,继承关系如图6-2所示。FileReader类用于读取文件;FileWrite类用于将数据写入文件。在使用这两个类之前,必须调用其构造方法创建相应的对象,然后才能调用相应的read()或write()方法进行文件的读写操作
6、BufferedReader和BufferedWrite类分别继承自Reader类和Writer类,BufferedReader类用来从字符输入流中读取文本,缓冲各个字符,从而实现字符、数组和行的高效读取。BufferedWrite类用于将文本写入字符输出流,缓冲各个字符,从而提供单个字符、数组和字符串的高效写入。
7、LineNumberReader类是BufferedReader类的直接子类。该类允许对文本输入数据流加入行号。
此类定义了方法setLineNumber(int)和getLineNumber(),它们可分别用于设置和获取当前行号。默认情况下,行编号从0开始。该行号随数据读取在每个行结束符处递增,并且可以通过调用setLineNumber(int)更改行号。但要注意的是,setLineNumber(int)不会实际更改流中的当前位置;它只更改将由getLineNumber()返回的值
8、LineNumberReader类是BufferedReader类的直接子类。该类允许对文本输入数据流加入行号。
此类定义了方法setLineNumber(int)和getLineNumber(),它们可分别用于设置和获取当前行号。默认情况下,行编号从0开始。该行号随数据读取在每个行结束符处递增,并且可以通过调用setLineNumber(int)更改行号。但要注意的是,setLineNumber(int)不会实际更改流中的当前位置;它只更改将由getLineNumber()返回的值使用RandomAccessFile类随机读写文件时,在创建了一个RandomAccessFile对象之后,该文件即对文件描述句柄处于打开状态。此时,文件的指针处于文件开始位置。可以通过seek(long pos)方法设置文件指针的当前位置,以进行文件的快速定位,然后使用相应的read()和write()方法对文件进行读写操作。在对文件的读写操作完成后,调用close()方法关闭文件
9、FileInputStream和FileOutputStream类主要用来处理以“位为主”的输入输出操作。其中,FileInputStream类继承于InputStream类;FileOutputStream类继承于OutputStream类。
与RandomAccessFile类所不同的是,FileInputStream和FileOutputStream类中提供的文件处理方式是文件中数据流的顺序读写,而不是利用文件指针进行定位的随机读写
10、Java中的PipedInputStream和PipedOutputStream类提供了利用管道方式进行数据输入输出管理。管道流用来将一个程序或者线程的输出连接到另外一个程序或线程作为输入,使得相连线程能够通过PipedInputStream和PipedOutputStream类进行数据交换。
PipedInputStream和PipedOutputStream类也是InputStream和OutputStream类的直接子类。这两个类必须结合使用,其中,管道输入流作为管道的接收端、管道输出流作为管道的发送端,在程序设计中应注意数据的传输方向
顺序输入流SequenceInputStream是InputStream的直接子类,其功能是将多个输入流连接在一起,形成单一的输入数据流,没有对应的输出数据流存在。
顺序输入流SequenceInputStream由多个输入流构造而成,它从输入流的有序集合开始,并从第一个输入流开始读取,直到文件末尾,接着从第二个输入流读取,依次类推,直到到达顺序输入流包含的最后一个输入流的文件末尾为止
Java 的流式中流式是什么意思
你是指网络通信中的流通信和包通信吗?
网络中的流通信就是值TCP通信,它是通过数据流的形式传递数据和接收数据,要保证接收数据的顺序。
包通信就是UDP通信,它不要求数据的顺序,也没有丢包重传机制。在java中它的数据包叫做:
Datagram Package
如何实现java 流式文件上传
@Controller
public class UploadController extends BaseController {
private static final Log log = LogFactory.getLog(UploadController.class);
private UploadService uploadService;
private AuthService authService;
/**
* 大文件分成小文件块上传,一次传递一块,最后一块上传成功后,将合并所有已经上传的块,保存到File Server
* 上相应的位置,并返回已经成功上传的文件的详细属性. 当最后一块上传完毕,返回上传成功的信息。此时用getFileList查询该文件,
* 该文件的uploadStatus为2。client请自行处理该状态下文件如何显示。(for UPS Server)
*
*/
@RequestMapping("/core/v1/file/upload")
@ResponseBody
public Object upload(HttpServletResponse response,
@RequestParam(value = "client_id", required = false) String appkey,
@RequestParam(value = "sig", required = false) String appsig,
@RequestParam(value = "token", required = false) String token,
@RequestParam(value = "uuid", required = false) String uuid,
@RequestParam(value = "block", required = false) String blockIndex,
@RequestParam(value = "file", required = false) MultipartFile multipartFile,
@RequestParam MapString, String parameters) {
checkEmpty(appkey, BaseException.ERROR_CODE_16002);
checkEmpty(token, BaseException.ERROR_CODE_16007);
checkEmpty(uuid, BaseException.ERROR_CODE_20016);
checkEmpty(blockIndex, BaseException.ERROR_CODE_20006);
checkEmpty(appsig, BaseException.ERROR_CODE_10010);
if (multipartFile == null) {
throw new BaseException(BaseException.ERROR_CODE_20020);// 上传文件不存在
}
Long uuidL = parseLong(uuid, BaseException.ERROR_CODE_20016);
Integer blockIndexI = parseInt(blockIndex, BaseException.ERROR_CODE_20006);
MapString, Object appMap = getAuthService().validateSigature(parameters);
AccessToken accessToken = CasUtil.checkAccessToken(token, appMap);
Long uid = accessToken.getUid();
String bucketUrl = accessToken.getBucketUrl();
// 从上传目录拷贝文件到工作目录
String fileAbsulutePath = null;
try {
fileAbsulutePath = this.copyFile(multipartFile.getInputStream(), multipartFile.getOriginalFilename());
} catch (IOException ioe) {
log.error(ioe.getMessage(), ioe);
throw new BaseException(BaseException.ERROR_CODE_20020);// 上传文件不存在
}
File uploadedFile = new File(Global.UPLOAD_TEMP_DIR + fileAbsulutePath);
checkEmptyFile(uploadedFile);// file 非空验证
Object rs = uploadService.upload(uuidL, blockIndexI, uid, uploadedFile, bucketUrl);
setHttpStatusOk(response);
return rs;
}
// TODO 查看下这里是否有问题
// 上传文件非空验证
private void checkEmptyFile(File file) {
if (file == null || file.getAbsolutePath() == null) {
throw new BaseException(BaseException.ERROR_CODE_20020);// 上传文件不存在
}
}
/**
* 写文件到本地文件夹
*
* @throws IOException
* 返回生成的文件名
*/
private String copyFile(InputStream inputStream, String fileName) {
OutputStream outputStream = null;
String tempFileName = null;
int pointPosition = fileName.lastIndexOf(".");
if (pointPosition 0) {// myvedio
tempFileName = UUID.randomUUID().toString();// 94d1d2e0-9aad-4dd8-a0f6-494b0099ff26
} else {// myvedio.flv
tempFileName = UUID.randomUUID() + fileName.substring(pointPosition);// 94d1d2e0-9aad-4dd8-a0f6-494b0099ff26.flv
}
try {
outputStream = new FileOutputStream(Global.UPLOAD_TEMP_DIR + tempFileName);
int readBytes = 0;
byte[] buffer = new byte[10000];
while ((readBytes = inputStream.read(buffer, 0, 10000)) != -1) {
outputStream.write(buffer, 0, readBytes);
}
return tempFileName;
} catch (IOException ioe) {
// log.error(ioe.getMessage(), ioe);
throw new BaseException(BaseException.ERROR_CODE_20020);// 上传文件不存在
} finally {
if (outputStream != null) {
try {
outputStream.close();
} catch (IOException e) {
}
}
if (inputStream != null) {
try {
inputStream.close();
} catch (IOException e) {
}
}
}
}
/**
* 测试此服务是否可用
*
* @param response
* @return
* @author zwq7978
*/
@RequestMapping("/core/v1/file/testServer")
@ResponseBody
public Object testServer(HttpServletResponse response) {
setHttpStatusOk(response);
return Global.SUCCESS_RESPONSE;
}
public UploadService getUploadService() {
return uploadService;
}
public void setUploadService(UploadService uploadService) {
this.uploadService = uploadService;
}
public void setAuthService(AuthService authService) {
this.authService = authService;
}
public AuthService getAuthService() {
return authService;
}
}
java 流式I/O
public class WordRate {
public static void main(String[] args) throws Exception {
BufferedReader infile = new BufferedReader(new FileReader("source.txt"));
String string;
String file = null;
while ((string = infile.readLine()) != null) {
file += string;
}
file = file.toLowerCase();// 所有字母小写化
file = file.replaceAll("[^A-Za-z]", " ");// 正则,匹配非英文字符为空格
file = file.replaceAll("\\s+", " "); // 正则,将1到多个空格匹配为一个空格
String words[];
words = file.split("\\s+");// 取出单词,并将单词存入数组中
MapString, Integer hashMap = new HashMapString, Integer();
for (int i = 0; i words.length; i++) {
String key = words[i];
if (hashMap.get(key) != null) {
int value = ((Integer) hashMap.get(key)).intValue();
value++;
hashMap.put(key, new Integer(value));
} else {
hashMap.put(key, new Integer(1));
}
}
MapString, Object treeMap = new TreeMapString, Object(hashMap);
Set entrySet = treeMap.entrySet();
/*
* Iterator iterator = entrySet.iterator(); FileWriter out=new
* FileWriter("result.txt");
*
*
* //按照单词的字母次序输出。 while (iterator.hasNext()) {
* System.out.println(iterator.next()); }
*/
// ================================modify==========================
BufferedWriter bw = new BufferedWriter(new FileWriter("result.tx")); //实例化一个writer对象
for (Iterator iterator = entrySet.iterator(); iterator.hasNext();) { // 循环迭代
String result = (String) iterator.next();
bw.write(result); // 调用writer的write方法将得到的result写入文件
bw.newLine(); // 另起一行
bw.flush(); // 清空缓存
}
}
}
ps:modify之后为写入文件的内容,每一步我加了注释。另外 楼主写的程序没有设置关闭输入输出流。希望你下来改进一下。
java 边界布局 流式布局是什么
Bluestorm's Space
页面布局(--FlowLayout,--BorderLayout,--GridLayout)
所谓的布局管理器分为好多种,最常见的有流式布局管理器(FlowLayout)、边界布局管理器(BorderLayout)和表格布局管理器(GridLayout)。
1.流式布局管理器
是将组件流水似的摆放在Frame或其它构件上,从左到右,依次排放,遇到边界就重新另起行,顺序排放,整体置放在中央的位置。
2. 边界布局管理器
则将板块分为东西南北中五个方向,每添加一个组件就要指定组件摆放的方位,放置在东西南北四个方向的组件将贴边放置.当拉大Frame的时候,处在center(中间)的组件就不断积压东西南北四个方向的组件
3. 表格布局管理器
就是分几行几列将部件摆放到Frame上去,几个部件也是贴边放置的
How to Use BorderLayout(Oracle docs)
页面布局(--FlowLayout,--BorderLayout,--GridLayout)
Java图形化界面设计——布局管理器之BorderLayout(边界布局)
Java图形化界面设计——布局管理器之FlowLayout(流式布局)
Java图形化界面设计——布局管理器之GridLayout(网格布局)
流式java方法的介绍就聊到这里吧,感谢你花时间阅读本站内容,更多关于java 流式、流式java方法的信息别忘了在本站进行查找喔。